web-dev-qa-db-fra.com

Instagram oauth api donne {"code": 400, "type_erreur": "OAuthException", "message_erreur": "Aucun code correspondant trouvé." }

Je travaille sur une application qui s'intègre à Instagram API pour accéder aux informations de l'utilisateur. J'ai réussi à récupérer le jeton d'accès à l'aide de l'URL autoriser mais je suis incapable d'extraire l'ID utilisateur à l'aide de l'URL access_token

je suis essayé à la fois les points finaux:

https://api.instagram.com/oauth/access_token?client_id=48275564e2c445f6b8e1356djfha3e0c&client_secret=ab2062da9f314e3489dke7ae9cbe6e5d&redirect_uri=http://localhost&grant_type=authorization_code

https://api.instagram.com/oauth/access_token

avec le corps de poste comme:

client_id=48275564e2c445f6b8e1356djfha3e0c&client_secret=ab2062da9f314e3489dke7ae9cbe6e5d&redirect_uri=http://localhost&grant_type=authorization_code&code=1351860224.4827556.5dc92c4d15ea4a4ea1b0d33eaf0eef19

(Les données de la demande sont modifiées), mais je reçois ce qui suit 

{
    "code": 400,
    "error_type": "OAuthException",
    "error_message": "No matching code found."
}

J'ai vu des tonnes de requêtes et de questions, mais je n'ai trouvé aucune solution au problème.

Le couple de questions que j'ai est:

1) is the field code in the URL is same as access_token, if not how could i get the code field's value.

2) is there any other mechanism(API) to fetch the user details given the username is not known.

S'il vous plaît, aidez-moi car je suis complètement coincé et je respecte mes échéances.

24
Amritpal Singh

Pour moi, décocher Désactiver OAuth implicite dans le développeur instagram -> gérer les clients a résolu le problème.

12
h0mayun

J'ai trouvé que l'utilisation de form-data ou application/x-www-form-urlencoded fonctionne bien. Le plus important est la code que vous obtenez de la redirection. Une seule requête est utilisée. Cela signifie que vous pouvez demander le jeton d'accès une fois pour code. Si vous demandez plus d'une fois avec la même code, vous obtiendrez le message d'erreur suivant:

{
    code: 400,
    error_type: "OAuthException",
    error_message: "Matching code was not found or was already used."
}

Je vous souhaite le meilleur ;)

1
yuhua

J'ai la même erreur. Il semble que le système de spam d’instagram désactive l’accès de l’utilisateur à n’importe quelle application non officielle. Il suffit de changer le mot de passe de l'utilisateur. Dans mon cas, c’était utile… .. Essayez aussi de créer une autre application.

UPD

De ma réponse à une autre question

Il semble que les utilisateurs obtiennent plus d'une code et que vous voyez first code, mais vous avez besoin de second. Essayez les utilisateurs relogin, si vous obtenez une erreur. L'utilisateur ne verra pas la page d'instagram avec le bouton de confirmation, juste les redirections.

Algorithme d'erreur possible:

1. User click auth link.
2. Get first code.
3. User click auth link (twice, redirection problem, public auth system, etc.)
4. Get another code (even on the same client_id, redirect_uri).
5. You get first code.
6. But first code already doesn't exists.
0
CnapoB

Essayez d’urlEncode le paramètre redirect_uri à 

http%3A%2F%2Flocalhost

Et votre code param contient le "." caractère qui pourrait être une erreur.

code=1351860224.4827556.5dc92c4d15ea4a4ea1b0d33eaf0eef19

pourrait causer le problème

"error_message": "No matching code found."

"5dc92c4d15ea4a4ea1b0d33eaf0eef19" semble être le code correct

0
Charlie

L'extrait de python instagram tardif échoue en raison de l'absence d'en-tête HTTP de type de contenu

response, content = http_object.request(url, method="POST", body=data,headers = {"Content-type": "application/x-www-form-urlencoded"})

l'ajout de l'application/x-www-form-urlencoded a fonctionné pour moi

0
sathish

Le problème est ici que besoin URL de redirection définie comme http: // localhost/signin-instagram

la partie signin-instagram est très importante Allez donc à Instagram.com/developer -> Gérer le client-> Sécurité -> Les URI de redirection valides définis avec cette fin http: /../signin-instagram

0
user5775067

Je vais mentionner ce qui a fonctionné pour moi.

Étape 1. Générez un nouveau secret client à partir de votre panneau.

Étape 2. Suivez l’étape 1 mentionnée ici pour obtenir le code à nouveau.

Étape 3. Envoyez à nouveau la demande avec les paramètres modifiés.

Assurez-vous d'être connecté au navigateur lorsque vous envoyez la demande. Vous obtiendrez la réponse requise.

0
Weaver