web-dev-qa-db-fra.com

Oauth2 Instagram API "L'URI de redirection ne correspond pas à l'URI de redirection enregistré"

Je travaille sur une application Rails qui est en mode de développement et qui peut s’enregistrer avec omniauth. 

L'hôte est 

http://localhost:3000/

J'utilise les gemmes:

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

Lorsque je m'enregistre via omniauth auprès de Foursquare, il n'y a aucun problème. Tous les paramètres sont corrects et mon redirect_uri dans les paramètres de développement Foursquare est égal à l'hôte (localhost: 3000)

Cependant, si je remplis exactement le même redirect_uri (localhost: 3000) dans le gestionnaire de clientèle Instagram *. Instagram me donne ceci:

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

Basé sur cette 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

Qu'est-ce que je fais mal selon Instagram et comment cela devrait-il être corrigé?

14
Biketire

Correction du problème moi-même. Ajout de localhost:3000/auth/instagram/callback en tant que redirect_uri et tout a bien fonctionné.

20
Biketire

J'avais besoin d'ajouter

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

comme mon URI de rappel parce que j'utilise Devise.

6
rubygrrl42

Lorsque vous spécifiez un URI de redirection http: // localhost: 3000 n’est pas identique à http: // localhost: 3000/ (notez la barre oblique finale).

Assurez-vous que l'URI de rappel correspond exactement.

4
Dylan Fisher

Ce n'est pas spécifique à Ruby mais pour tous les autres lutteurs avec ceci voici ce qui m'a permis de le surmonter (note: rien dans les réponses ci-dessus n'a fonctionné pour moi):

  • 1. Edit your Client on Instagram Developer and uncheck Disable implicit OAuth.
  • 2. Click Update Client to save it.
  • 3. Now go to https://instagram.com/oauth/authorize/?client_id=[CLIENT_ID]&redirect_ur.... Just change [CLIENT_ID] and [REDIRECT_URI] with their values.
  • 4. After that you will be redirected to [REDIRECT_URI]/#access_token=[ACCESS_TOKEN]. Get it and place it on the Instagram Access Token textbox.

(Source: https://www.drupal.org/project/instagram_feeds/issues/2140479 )

0
Chris Emerson

{"error_type": "OAuthException", "code": 400, "error_message": "L'URI de redirection ne correspond pas à l'URI de redirection enregistré"}

Comment obtenir le jeton d'accès depuis instagram

L’URL de votre site Web doit être identique lors de l’enregistrement de sandbox clien api sur instagram https://www.instagram.com/developer/

ici, nous avons utilisé l'URL du site Web: https://adlivetech.com Les URI de redirection valides: https://adlivetech.com/

Pour les sites Web en direct, vous pouvez facilement obtenir le jeton d'accès à l'aide de https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

Remplacez l'URL ci-dessus "ID-CLIENT" par votre ID client Remplacez l'URL ci-dessus "REDIRECT-URI" L'URL de redirection doit correspondre à votre nom de domaine, par exemple: http://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken

0
Rohit Kaushik

Pour le module Drupagram (Drupal 7) ajouté: http://localhost:3000/instagram/oauth comme redirect_uri

0
Sergey Zhukov

Cela fait des siècles que je moque de ça avec ça ... peut-être a-t-il changé, mais: http: // localhost: 3000/users/auth/instagram/int_callback }. Finalement, j'ai travaillé pour moi ... Le seul problème que je rencontrais était que c’était exactement un mauvais rappel (uri) et que j’aurais aimé voir ici que je devrais me concentrer sur ma configuration Instagram au lieu de modifier mon code ... signifie que tout le reste fonctionne (jusqu'à présent), sinon vous n'obtiendrez pas ce message d'erreur particulier… .. Bonne chance !! - ne soyez pas distrait!

0
Julian

Problème: L'API Instagram Oauth2 «l'URI de redirection ne correspond pas à l'URI de redirection enregistré

Ma solution: Vérifiez le fichier ng-cordova-oauth.js et vérifiez le fonctionnement d'instagram dans celui-ci. Vérifiez que la valeur redirect_uri est identique à celle utilisée pour enregistrer votre application sur la console du développeur pour Instagram. Si elle est identique, cela fonctionne correctement, sinon vous obtenez le problème ci-dessus.

0
Narendrakumar

Pour tous ceux qui ont ce problème et la redirection fournie par uri à instagram est exactement la même que celle que vous utilisez, j'ai constaté que certains utilisateurs tapaient l'adresse de mon site Web sous la forme http://www.example.com/login alors que dans mon api instagram, elle était http://example.com/login

Ensuite, j'ai créé un script php pour détecter si la chaîne www existe dans mon URL et ensuite recharger vers la même page mais sans la www.

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