2013-05-14 3 views
13

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

Хост

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 и как это должно быть исправлено?

+2

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

+0

Пожалуйста, добавьте свой комментарий как ответ и отметьте вопрос как ответ. –

ответ

19

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

+1

Мне пришлось добавить/users/auth/instagram/callback –

+0

Забавно, что auth/instagram/callback это действительно сработало, когда-либо понимали, в чем причина? – pal4life

+0

Я также сталкиваюсь с той же проблемой. Можете ли вы мне помочь? –

0

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

5

мне нужно добавить

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

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

0

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

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

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

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

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 
0

Издания: oauth2 Instagram API «перенаправление URI не соответствует зарегистрированному перенаправлять URI

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

3

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

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

+1

Это ответ, не смотрите в другом месте. :) – Banago

+0

это единственный правильный ответ –

0

{ "ERROR_TYPE": "OAuthException", "код": 400, "error_message": "Redirect URI не соответствует зарегистрированному перенаправлять URI"}

Как получить маркер доступа от Instagram

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

здесь мы использовали URL сайта: https://adlivetech.com Допустимого URI переадресации: https://adlivetech.com/

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

Заменить выше URL «КЛИЕНТ-ID» с идентификатором клиента Заменить выше URL «REDIRECT-URI» перенаправление URL должно быть ваше доменное имя, как: http://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken

Смежные вопросы

 Смежные вопросы