Php Google刷新令牌获取无效授权错误
我正在尝试为我的帐户使用google analytics api。因此,首先我允许应用程序使用离线刷新令牌进行访问。当我尝试刷新令牌时,我得到“无效授权”错误。尝试使用php客户端库和使用curl手动刷新 这是使用curl手动执行的:Php Google刷新令牌获取无效授权错误,php,google-analytics-api,google-api-client,Php,Google Analytics Api,Google Api Client,我正在尝试为我的帐户使用google analytics api。因此,首先我允许应用程序使用离线刷新令牌进行访问。当我尝试刷新令牌时,我得到“无效授权”错误。尝试使用php客户端库和使用curl手动刷新 这是使用curl手动执行的: $oauth2token_url = "https://accounts.google.com/o/oauth2/token"; $clienttoken_post = array( "client_id" => 'xxxxxxxx-d28q
$oauth2token_url = "https://accounts.google.com/o/oauth2/token";
$clienttoken_post = array(
"client_id" => 'xxxxxxxx-d28qutrse5bvaf7n4a37qgs5ieijvp9n.apps.googleusercontent.com',
"client_secret" => 'xxxxxxxxxxxxx');
$clienttoken_post["refresh_token"] = $refresh_token;
$clienttoken_post["grant_type"] = "refresh_token";
$curl = curl_init($oauth2token_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$json_response = curl_exec($curl);
curl_close($curl);
$authObj = json_decode($json_response);
print_r($authObj);
exit();
我在使用simple.php示例的前一次调用中获得的刷新令牌:
require_once '../../src/apiClient.php';
require_once '../../src/contrib/apiAnalyticsService.php';
session_start();
$client = new apiClient();
$client->setApplicationName("Google Analytics PHP Starter Application");
// Visit https://code.google.com/apis/console?api=analytics to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('xxxxxxxxx-d28qutrse5bvaf7n4a37qgs5ieijvp9n.apps.googleusercontent.com');
$client->setClientSecret('xxxxxx');
$client->setRedirectUri('https://www.xxxxxxxxxx.org/oauth2callback/google-api-php-client/examples/analytics/simple.php');
$client->setDeveloperKey('xxxxxxx');
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
// echo $_SESSION['token'];
$client->setAccessToken($_SESSION['token']);
}
echo $client->getAccessToken()
如果有人感兴趣,几个小时后我终于解决了: 我去了oauth游乐场:
在右边,有一个设置按钮。选择“使用您自己的OAuth凭据”。从那里获取了刷新令牌,它可以正常工作 如果有人感兴趣,几个小时后我终于解决了: 我去了oauth游乐场:
在右边,有一个设置按钮。选择“使用您自己的OAuth凭据”。从那里获取了刷新令牌,它可以正常工作 如果其他人遇到这个问题 我们遇到了一个问题,即同一个post请求最初不起作用,但后来起作用
对我们来说,谷歌似乎对iat时间非常挑剔——试着从中减去5分钟。如果其他人遇到这个问题 我们遇到了一个问题,即同一个post请求最初不起作用,但后来起作用 对我们来说,谷歌似乎对iat时间非常挑剔——试着从中减去5分钟