我已经在网站上实现了Google Youtube数据API,以使用户可以观看某些频道的视频。我已经阅读了Google关于如何使用它的文档,并使用了离线访问类型,因为它可以让API自动进行自我认证,并在过期后刷新访问令牌。
该API正常工作,但在1小时(访问令牌到期的默认时间)后,我仍然收到提示进行自动授权的提示,同时具有自动刷新访问令牌的代码。
我没有提供所有我正在使用的代码,仅提供了用于处理API设置和令牌过期的代码,因为其他代码可以正常工作。
任何对我在这里做错事的帮助将不胜感激。
已更新
$client = new Google_Client();
$client->setAuthConfigFile($config);
$client->setRedirectUri($redirect);
$client->addScope('https://www.googleapis.com/auth/youtube.readonly');
$client->setAccessType('offline');
if(file_exits($aToken){
$accessToken = file_get_contents($aToken);
$client->setAccessToken($accessToken);
if($client->isAccessTokenExpired()) {
if($client->getRefreshToken()){
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken());
file_put_contents($aToken, $client->getAccessToken());
} else {
authorize();
}
}
答案 0 :(得分:1)
您正在应用刷新令牌,但实际上并未使用它来获取新的访问令牌。
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken());