Я делаю приложение PHP, которое будет использовать единую учетную запись Google.OAuth поток с обновлением токенов. Ошибка 500
Так как администратор, я сначала даю разрешение на учетную запись Google. Когда разрешения приняты, я сохраняю токен обновления в базе данных.
После этого, в другом URL-адресе, который будет использоваться клиентами, я пытаюсь выполнить аутентификацию.
Далее я тяну маркер обновления из базы данных, а затем сделать пост запрос на:
$url = "https://accounts.google.com/o/oauth2/token";
с параметрами:
$post_data = array(
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'refresh_token' => $refreshToken,
'grant_type' => 'refresh_token');
После получения успешного ответа, я сохраняю access_token но когда я пытаюсь обменять его на учетные данные, я получаю эту ошибку. Сообщение:
An error occurred: Error fetching OAuth2 access token, message: '
Error processing OAuth 2 request
Error 500
'
Fatal error: Uncaught exception 'CodeExchangeException' in ...
Am I m что-то здесь? Я использую правильный поток oauth?
Заранее благодарен!
thnx для вашего ответа. Итак, используя токен обновления, я получаю json obj, который содержит access_token и id_token. Что мне делать с этим json obj? передать его, чтобы построить сервис? – Paschalis
Я не уверен, что делать с этим json-объектом. Тем не менее, там должна быть какая-то абстракция относительно токена обновления. Я не совсем уверен в google-api-php-клиенте, но в google-api-python-client Credentials.authorize автоматически пытается обновить токен для вас, если он истек, так что с уровня разработчика они даже не должны беспокоиться о освещении. Должна быть реализована абстракция в отношении освежения, и вам не нужно ее обрабатывать самостоятельно. Вместо того, чтобы самостоятельно обрабатывать обновления, я рекомендую вам более подробно ознакомиться с документацией. –