taral
@taral
php программист

В чем моя ошибка при авторизации google через oauth2?

Мне необходимо настроить интеграцию с google calendar. Для этого я выяснил необходимо получить от google refresh_token. Через него я смогу получать токен доступа. И далее работать через апи.
Для получения refresh_token я формирую такую ссылку [ссылка 1]
https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri={url}&client_id={client_id}&scope=https://www.googleapis.com/auth/calendar&access_type=offline&approval_prompt=auto

При тестировании на localhost при переходе по указанной ссылке открывается окно clip2net.com/s/3tqRiI8 (далее окно 1). После подтверждения я попадаю на адрес {url} с переданными данными. И дальше все работает нормально.

Проблема возникла когда я выгрузил код на сервер. Я добавил новый redirect_uri уже не на localhost. И при переходе по ссылке авторизации [ссылка 1] [окно 1] с подтверждением не всплывает, а сразу происходит редирект на {url}. И refresh_token получить я не могу.

Подскажите что я делаю не так.
  • Вопрос задан
  • 2622 просмотра
Пригласить эксперта
Ответы на вопрос 1
Если сразу редиректит на {url} то значит он видит что ты уже раньше давал доступ, и следовательно не запрашивает его. Он редиректит на {url} и еще параметром должен передать $_GET['code']. Вот по нему ты должен получить токен через post запрос на 'https://accounts.google.com/o/oauth2/token' с параметрами
$params = array(
'client_id' => 'id приложения',
'client_secret' => 'secret приложения',
'redirect_uri' => 'редирект url',
'grant_type' => 'authorization_code',
'code' => $_GET['code']
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы