Google oauth getAccessToken () null

Я хочу добавить 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

Как это исправить?

Попробуйте сбросить возвращаемое значение для вызова метода authenticate(). На основе исходный код для этой библиотеки вы должны увидеть дополнительную информацию.

John Ellmore 21.08.2018 07:24

array: 2 [▼ "error" => "invalid_request" "error_description" => «Не удалось определить идентификатор клиента из запроса.» ]

Ardy Febriansyah 21.08.2018 07:25

Спасибо, решено. Я просто повторяю код метода googleOauth () в googleOauthCallback ()

Ardy Febriansyah 21.08.2018 07:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
1 172
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, проблема в том, что вы не запрашиваете 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();

Другие вопросы по теме