Для учетных данных я создал учетную запись разработчика на 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 здесь.