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
*
Qu'est-ce que je fais mal selon Instagram et comment cela devrait-il être corrigé?
Correction du problème moi-même. Ajout de localhost:3000/auth/instagram/callback
en tant que redirect_uri et tout a bien fonctionné.
J'avais besoin d'ajouter
http://localhost:3000/users/auth/instagram/callback
comme mon URI de rappel parce que j'utilise Devise.
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.
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 )
{"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
Pour le module Drupagram (Drupal 7) ajouté: http://localhost:3000/instagram/oauth
comme redirect_uri
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!
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.
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']));
}