Я хочу добавить google oauth в свое веб-приложение, я уже следую документации google о google oauth с клиентской библиотекой php, но у меня проблема
Вот мой код
public function googleOauth() {
$client = new Google_Client();
$client->setAuthConfig(base_path('google_client.json'));
//$client->setAccessType("offline");
$client->setIncludeGrantedScopes(true);
$client->addScope(Google_Service_Blogger::BLOGGER);
$client->setRedirectUri(route('googleOauthCallback'));
return redirect($client->createAuthUrl());
}
public function googleOauthCallback(Request $params) {
if ($params->code) {
$client = new Google_Client();
$client->authenticate($params->code);
dd($client->getAccessToken());
}
Но вот $client->getAccessToken() возвращает null
Как это исправить?
array: 2 [▼ "error" => "invalid_request" "error_description" => «Не удалось определить идентификатор клиента из запроса.» ]
Спасибо, решено. Я просто повторяю код метода googleOauth () в googleOauthCallback ()






Я думаю, проблема в том, что вы не запрашиваете 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();
Попробуйте сбросить возвращаемое значение для вызова метода
authenticate(). На основе исходный код для этой библиотеки вы должны увидеть дополнительную информацию.