当访问类型设置为离线时,Youtube数据API征求同意

时间:2019-03-25 12:39:47

标签: php google-api google-oauth youtube-data-api google-api-php-client

我已经在网站上实现了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();
    }
}

1 个答案:

答案 0 :(得分:1)

您正在应用刷新令牌,但实际上并未使用它来获取新的访问令牌。

$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken()); 

我的样本Oauth2Authentication.php