Php 当accesstype设置为offline时,Youtube数据api请求同意

Php 当accesstype设置为offline时,Youtube数据api请求同意,php,google-api,google-oauth,youtube-data-api,google-api-php-client,Php,Google Api,Google Oauth,Youtube Data Api,Google Api Php Client,我在一个网站上实现了GoogleYouTube数据api,让用户可以看到某些频道的视频。我已经阅读了Google关于如何使用它的文档,并且使用了offline accesstype,因为它允许API自动调整自身大小,在访问令牌过期后刷新 API正在工作,但我仍然在1小时后(访问令牌到期的默认时间)得到自动化提示,同时有自动刷新访问令牌的代码 我没有提供我使用的所有代码,只有处理API设置和令牌过期的代码,因为其他代码工作正常 对于我在这里所做的错事,任何帮助都将不胜感激。 已更新 $clien

我在一个网站上实现了GoogleYouTube数据api,让用户可以看到某些频道的视频。我已经阅读了Google关于如何使用它的文档,并且使用了offline accesstype,因为它允许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();
    }
}

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

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

我的示例

谢谢,我也没有任何刷新令牌,因为我没有将approvalprompt参数设置为“force”。因此,这和fetch方法解决了这个问题。有趣的是,youtube数据api的文档中没有提到fetch方法,我唯一能找到它的地方是people api。谷歌文档对所有api都不一样,有些api的文档记录得比其他api更好。驱动器对php很好,谷歌分析也很好。我的项目为所有API生成了它们。如果答案对你有帮助,记得接受它。现在就接受并投票支持你的答案。是的,我的代码样本看起来不错,所以我将来可能会在谷歌API中使用它。