Добавить запрос в Instagram Redirect (Ошибка: URI перенаправления не соответствует исходному URI перенаправления) - PullRequest
0 голосов
/ 06 июня 2018

Я использую Laravel Socialite Provider для использования Instagram API.Тем не менее, он должен работать без сбоев, но, тем не менее, я получаю сообщение об ошибке при попытке добавить дополнительный запрос:

"Ошибка: URI перенаправления не соответствует исходному URI перенаправления"


Что работает

return Socialite::driver('instagram')
            ->redirectUrl(config('services.instagram.redirect'))
            ->redirect();

Что не работает

return Socialite::driver('instagram')
        ->redirectUrl(config('services.instagram.redirect').'?type=reconnect')
        ->redirect();

В моем случае мне просто нужно добавить один запрос "type = reconnect", но это приводит к ошибке.


Давайте посмотрим на мои URL:

Что работает (декодированный URL):

https://api.instagram.com/oauth/authorize?client_id=somenumber&redirect_uri=https://insta.test/login/instagram/callback&scope=basic&response_type=code&state=BN5XDInTtiRCsSUrHxwB9Ez5wnSDdUDjOmq595v1

Что не работает

https://api.instagram.com/oauth/authorize?client_id=somenumber&redirect_uri=https://insta.test/login/instagram/callback?type=reconnect&scope=basic&response_type=code&state=bGa5BCb5QN7UPhmOoZThU5fgeLPPSqXik1JdlHkj

Итак, как вы добавляете запрос?

В документе четко сказано, что вы можете добавить URI следующим образом: ( Doc )

ЗАРЕГИСТРИРОВАННЫЙ НАПРАВЛЕННЫЙ URI ⠀⠀⠀⠀⠀⠀⠀⠀ED REDIRECT_URI PARAMETER

http://yourcallback.com/callback ⠀⠀⠀⠀⠀⠀ ⠀⠀ http://yourcallback.com/callback?type=mobile

1 Ответ

0 голосов
/ 06 июня 2018

Итак, прокомментировав кое-что, я обнаружил, что URL-адрес правильно закодирован, и Instagram действительно позволяет мне пройти первые два шага документации:

  1. Направьте вашего пользователя на наш URL-адрес авторизации ->Чек
  2. Получите перенаправление из Instagram -> Чек (я получил код)

Но

Запрос access_token -> не сработал, потому что я забыл установить redirectUrl на URL первого шага!Это означает, что вы должны установить его так:

Socialite::driver('instagram')
     ->redirectUrl(config('services.instagram.redirect').'?type=reconnect')
     ->user();
...