API данных Youtube запрашивает согласие, в то время как accesstype установлен в автономный режим - PullRequest
1 голос
/ 25 марта 2019

Я внедрил API данных Google Youtube на веб-сайт, чтобы пользователи могли просматривать видео определенных каналов. Я прочитал документацию от Google о том, как его использовать, и использовал автономный 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();
    }
}

1 Ответ

1 голос
/ 26 марта 2019

Вы применяете свой токен обновления, но фактически не используете его для получения нового токена доступа.

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

Мой образец Oauth2Authentication.php

...