Oauth2 Instagram API "перенаправление URI не соответствует зарегистрированному URI переадресации" - программирование

Oauth2 Instagram API "перенаправление URI не соответствует зарегистрированному URI переадресации"

Я работаю над приложением Rails, которое находится в режиме разработки и может регистрироваться с помощью omniauth.

Хост

http://localhost:3000/

Я использую драгоценные камни:

gem 'omniauth'
gem 'omniauth-foursquare'
gem 'omniauth-instagram'

Когда я регистрируюсь через omniauth с Foursquare, нет никакой проблемы. Все настройки верны, и моя redirect_uri в настройках разработчика Foursquare равна хосту (localhost: 3000)

Однако, если я заполню то же самое redirect_uri (localhost: 3000) в диспетчере клиентов Instagram *. Instagram дает мне следующее:

{
 "code": 400,
 "error_type": "OAuthException",
 "error_message": "Redirect URI does not match registered             redirect URI"
}

На основе этого URL-адреса:

https://instagram.com/oauth/authorize?response_type=code&client_id=<ID>&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Finstagram%2Fcallback&state=18415adf24dd97873e61094f67c0fb7a94857fedf93e9d2e&scope=basic

* enter image description here

Что я делаю неправильно в соответствии с Instagram и как это должно быть исправлено?

4b9b3361

Ответ 1

Исправлена ​​проблема. Добавлен localhost:3000/auth/instagram/callback как redirect_uri, и он работал отлично.

Ответ 2

Мне нужно было добавить

http://localhost:3000/users/auth/instagram/callback

как мой URI обратного вызова, потому что я использую Devise.

Ответ 3

Когда вы указываете URI перенаправления http://localhost:3000, это не то же самое, что http://localhost:3000/ (обратите внимание на конечную косую черту).

Убедитесь, что URI обратного вызова соответствует точно.

Ответ 4

Для модуля Drupagram (Drupal 7) добавлено: http://localhost:3000/instagram/oauth как redirect_uri

Ответ 5

Для тех, кто имеет эту проблему, а перенаправление uri, предоставленное instagram, точно такое же, как и тот, который вы используете, я обнаружил, что некоторые пользователи печатали мой адрес веб-сайта как http://www.example.com/login, когда в моей instagram api это было http://example.com/login.

Затем я создал php script, чтобы определить, существует ли строка www в моем URL-адресе, а затем перезагрузится на ту же страницу, но без www.

if(strpos($_SERVER['HTTP_HOST'], 'www.') !== FALSE) {
    header("Location: ".str_replace('www.', '', $_SERVER['HTTP_HOST'].'/'.$_SERVER['REQUEST_URI']));
}

Ответ 6

Проблема: API-адрес Oauth2 Instagram API "URI перенаправления не соответствует зарегистрированному URI перенаправления

Мое решение: Пожалуйста, проверьте файл ng-cordova-oauth.js и проверьте функцию instagram. Проверить значение redirect_uri так же, как зарегистрировать ваше приложение в консоли разработчика для Instagram.If он тот же, что он работает правильно, в противном случае вы получите вышеупомянутую проблему.

Ответ 7

{ "error_type": "OAuthException", "code": 400, "error_message": "Перенаправление URI не соответствует зарегистрированному URI переадресации" }

Как получить токен доступа из instagram

URL-адрес вашего сайта должен быть одинаковым при регистрации песочницы clien api на instagram https://www.instagram.com/developer/

здесь мы использовали URL-адрес веб-сайта: https://adlivetech.com Действительные URI перенаправления: https://adlivetech.com/

Для живого веб-сайта вы можете легко получить токен доступа, используя https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

Замените выше URL-адрес "ИДЕНТИФИКАТОР КЛИЕНТА" с идентификатором клиента Заменить выше url "REDIRECT-URI" URL-адрес перенаправления должен быть вашим доменным именем, например: http://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken

Ответ 8

... Или вы можете следовать инструкциям здесь:

https://instagram.com/developer/authentication/?hl=en

См. "Шаг первый: направьте пользователя на наш URL-адрес авторизации".

Просто поставьте свои CLIENT_ID и REDIRECT_URI.

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code