Как получить токен пользователся Google Auth?

Ссылка скопирована
1 ответ

Пробую реализовать авторизацию с помощью Google API.
При получении токена выдает ошибку, как исправить не знаю и в гугле на могу найти

Вот код:

$client = new Google_Client(); $client -> setClientId(CLIENT_ID); $client -> setRedirectUri(REDIRECT_URL); $client -> addScope("profile");  echo "<a href=" . $client -> createAuthUrl() . ">Войти через google</a>";  if (isset($_GET['code'])) {     $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);     $client->setAccessToken($token['access_token']);     tt($token);  }  function tt($data){     echo '<pre>';     print_r($data);     echo '</pre>'; }

$client = new Google_Client(); $client -> setClientId(CLIENT_ID); $client -> setRedirectUri(REDIRECT_URL); $client -> addScope("profile"); echo "<a href=" . $client -> createAuthUrl() . ">Войти через google</a>"; if (isset($_GET['code'])) { $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); $client->setAccessToken($token['access_token']); tt($token); } function tt($data){ echo '<pre>'; print_r($data); echo '</pre>'; }

Дополнительно:

Ошибку компилировать в уме предлагаете?

  • no_one_safe, Оо извиняюсь) При получении токена через код, мне возваряется этот масив
    Array
    (
    [error] => invalid_request
    [error_description] => Could not determine client ID from request.
    )
  • Elon,

    Could not determine client ID from request.

    Вот это гуглил? Вторая ссылка же в поиске...
    покажи вывод константы
    CLIENT_ID

  • no_one_safe, уже решил, сделал так же как там просто я сначало без json файла делал, ну а теперь у меня другая проблема уже ахах)
  • alexvdem, я вообще ни в чем не уверен, не знаю как это делается. Сейчас почитаю
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ирина WP Ответ

    Для получения токена пользователя Google Auth необходимо следовать определенным шагам. Вот как это можно сделать:

    1. Сначала необходимо создать проект в Google Cloud Console и включить в нем API Google Authentication. Для этого зайдите на сайт console.cloud.google.com, создайте новый проект, затем перейдите в раздел "API и сервисы" -> "Библиотека" и найдите API Google Authentication. Нажмите на кнопку "Включить API".

    2. После этого необходимо создать учетные данные для вашего проекта. Перейдите в раздел "API и сервисы" -> "Учетные данные" и нажмите на кнопку "Создать учетные данные". Выберите тип учетных данных "Идентификация клиента OAuth 2.0" и укажите тип приложения, для которого создается учетная запись.

    3. В процессе создания учетных данных вам будет предоставлен клиентский идентификатор и секретный ключ. Сохраните эти данные в безопасном месте, так как они понадобятся вам для получения токена.

    4. Теперь вы можете использовать клиентский идентификатор и секретный ключ для выполнения запросов к API Google Authentication и получения токена пользователя. Для этого необходимо отправить POST-запрос на адрес https://oauth2.googleapis.com/token, передав в параметрах запроса необходимые данные, такие как grant_type, client_id, client_secret и code.

    Пример кода на PHP для получения токена пользователя Google Auth:

    $clientId = 'ваш_клиентский_идентификатор';
    $clientSecret = 'ваш_секретный_ключ';
    $code = 'код_авторизации';
     
    $data = array(
        'grant_type' => 'authorization_code',
        'client_id' => $clientId,
        'client_secret' => $clientSecret,
        'code' => $code
    );
     
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     
    $response = curl_exec($ch);
    curl_close($ch);
     
    $token = json_decode($response, true)['access_token'];
     
    echo $token;

    $clientId = 'ваш_клиентский_идентификатор'; $clientSecret = 'ваш_секретный_ключ'; $code = 'код_авторизации'; $data = array( 'grant_type' => 'authorization_code', 'client_id' => $clientId, 'client_secret' => $clientSecret, 'code' => $code ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://oauth2.googleapis.com/token'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $token = json_decode($response, true)['access_token']; echo $token;

    Этот код отправит POST-запрос к API Google Authentication с необходимыми параметрами и вернет вам токен пользователя, который вы можете использовать для доступа к защищенным ресурсам. Не забудьте обработать возможные ошибки и проверки безопасности при работе с токенами.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно