Google API – запрос на токен из Oauth2 возвращает нулевой токен

Для учетных данных я создал учетную запись разработчика на https://console.developers.google.com , я создал проект, а затем создал учетные данные из диспетчера API. Я использую пакет «google / apiclient»: «1.1. *». Я думаю, что это проблема с учетными данными.

$OAUTH2_CLIENT_ID = 'XXXXX-rvm1l9b1nvht9je1ic0bbe05ab5gvhbg.apps.googleusercontent.com'; $OAUTH2_CLIENT_SECRET = 'XXXXXXP90L_DLD3Nrc_rT4zGD'; $client = new Google_Client(); $client->setClientId($OAUTH2_CLIENT_ID); $client->setClientSecret($OAUTH2_CLIENT_SECRET); $client->setScopes('https://www.googleapis.com/auth/youtube'); $redirect = url('/'); $client->setRedirectUri($redirect); $token = $client->getAccessToken(); dd($token); 

Я думаю, проблема заключается в том, что вы не делаете запрос в Google для проверки подлинности и возврата токена. Ты должен сделать:

 $client = new Google_Client(); $client->setClientId($OAUTH2_CLIENT_ID); $client->setClientSecret($OAUTH2_CLIENT_SECRET); $client->setScopes('https://www.googleapis.com/auth/youtube'); $redirect = url('/'); $client->setRedirectUri($redirect); //redirect to google server to get the token return Redirect::to( $client->createAuthUrl() ); 

Если аутентификация удалась, Google перенаправит вас на страницу, заданную с помощью $client->setRedirectUri($redirect) .

На этой странице вы можете:

 //authenticate using the parameter $_GET['code'] you got from google server $client->authenticate( $request->input('code') ); //get the access token $tokens = $client->getAccessToken(); 

Наконечник:

Не использовать:

 $client->authenticate($authcode); $token = $client->getAccessToken(); 

Использование:

  $token = $client->fetchAccessTokenWithAuthCode($authcode); 

Это, по крайней мере, позволит вам увидеть сообщение об ошибке, если вы сбросите $token . В примере «Не использовать:», если сбой authenticate() getAccessToken() , getAccessToken() может вернуть значение null. Плохая работа по API здесь.