我正在尝试构建一个访问Google AnalyticsAPI并提取数据的网络应用.但是,我在OAuth 2.0授权方面遇到了一些问题.
它允许成功的初始访问,但是当我点击刷新页面的提交按钮时,它会迅速将我踢出并抛出Google_Auth_Exception,并显示错误"获取OAuth2访问令牌时出错,消息:'invalid_grant''.
据我了解OAuth 2.0,验证有4个步骤:
据我所知,$ client-> setAccessToken(); 自动刷新令牌.
自从他们转移到Github之后,我似乎无法找到谷歌的任何文档,而且我大部分都遵循了他们的示例结构.
当它尝试执行$ client-> authenticate($ _ GET ['code'])时,从第一个try块抛出错误;
我目前的解决方法是取消设置会话令牌,并让用户重新授权.但是,这非常麻烦和干扰,因为与页面的任何交互都会要求重新授权.
任何帮助将不胜感激!
这是我的代码:
<?php
/**********************
OAUTH 2.0 AUTHORIZATION
***********************/
//required libraries
set_include_path("../src/" . PATH_SEPARATOR . get_include_path());
require_once 'Google/Client.php';
require_once 'Google/Service/Analytics.php';
//variables
$client_id = 'redacted';
$client_secret = 'redacted';
$redirect_uri = 'http://'.$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF'];
$dev_key = 'redacted';
//create a Google client
$client = new Google_Client();
$client->setApplicationName('App');
//sets client's API information
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->setDeveloperKey($dev_key);
$client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));
//if log …Run Code Online (Sandbox Code Playgroud)