Я пытаюсь получить токен доступа на своем сервере, чтобы использовать GMail API из клиентской библиотеки PHP, и все, что я получаю, является NULL после того, как я var_drump переменную, у меня есть токен доступа через getAccessToken();
метод.
Любая идея, что я делаю неправильно, чтобы как я мог использовать токен?
У меня есть действительный код аутентификации в URL с параметром кода, и я не знаю, почему я получаю null, когда пытаюсь получить токен доступа. Есть идеи?
Вот мой код:
require_once 'vendor/autoload.php'; $redirect_uri = 'https://website.com/m/?mail=tokened'; $client = new Google_Client(); $client->setAuthConfig('client_secrets.json'); $client->setRedirectUri($redirect_uri); $client->setAccessType('offline'); $client->setApprovalPrompt('force'); $client->authenticate($_GET['code']); $access_token = $client->getAccessToken(); var_dump($access_token);
Мой дальнейший поиск в Google обнаружил это: API Google – запрос на токен из Oauth2 возвращает нулевой токен
И я попробовал следующее на основе этого кода, потому что это то, что будет работать без ошибок, а не то, что было именно в ответе, и я все еще получаю NULL
На этот раз я попытался сделать код авторизации и получить токен доступа от всего этого на стороне сервера, единственное различие заключается в том, что на этот раз он запрашивает разрешение на доступ к данным Gmail.
require_once 'vendor/autoload.php'; $client = new Google_Client(); $client->setAuthConfig('client_secrets.json'); $client->setScopes('https://mail.google.com'); if($_GET['mail']=='approved'){ $client->setRedirectUri('https://website.com/m/php/googleTokens.php?mail=tokened'); return header('Location: ' . $client->createAuthUrl()); } else{ $client->authenticate($_GET['code']); $tokens = $client->getAccessToken(); var_dump($tokens); }