L'api Instagram oauth donne {"code": 400, "Type d'erreur":" OAuthException"," message d'erreur": "Aucun code correspondant trouvé."}
je travaille sur une application qui s'intègre à L'API Instagram pour accéder aux informations utilisateur. Je récupère avec succès le jeton D'accès en utilisant l'url authorize mais je ne peux pas récupérer l'userId en utilisant l'url access_token:
j'ai essayé les deux effets:
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 post:
client_id=48275564e2c445f6b8e1356djfha3e0c&client_secret=ab2062da9f314e3489dke7ae9cbe6e5d&redirect_uri=http://localhost&grant_type=authorization_code&code=1351860224.4827556.5dc92c4d15ea4a4ea1b0d33eaf0eef19
(la les données dans la demande est modifiée), mais je reçois le suivant
{
"code": 400,
"error_type": "OAuthException",
"error_message": "No matching code found."
}
j'ai vu des tonnes de questions mais n'ai pas pu trouver de 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.
Merci de m'aider car je suis complètement bloqué et la gestion de mes échéances.
7 réponses
Pour moi, en décochant Désactiver implicite OAuth dans instagram développeur -> gérer les clients correction de l'émission
j'ai trouvé que l'utilisation de form-data
ou application/x-www-form-urlencoded
fonctionne très bien. Le plus important est le code
que vous obtenez de redirect uri n'est utilisé que par une seule requête. Cela signifie que vous pouvez demander le jeton d'accès une fois pour le code
. Si vous demandez plus d'une fois avec la même code
, vous obtiendrez l'erreur comme ceci:
{
code: 400,
error_type: "OAuthException",
error_message: "Matching code was not found or was already used."
}
vous Souhaite à tous le meilleur ;)
essayer de urlEncode le param redirect_uri à
http%3A%2F%2Flocalhost
et votre code param contient le"."caractère de ce 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
j'ai eu 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 utilisateur. Dans mon cas, c'était de l'aide. Essayez aussi de créer une autre application.
UPD
de ma réponse à une autre question
il semble que les utilisateurs obtiennent plus d'un code
, et vous voyez first code
, mais il faut second
. Essayez relogin
utilisateurs, si vous obtenez erreur. L'utilisateur ne verra pas la page instagram avec le bouton Confirmer, juste des 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.
le problème est ici que le besoin redirige url défini comme http://localhost/signin-instagram
signin-instagram la partie est très importante Alors, allez à Instagram.com/developer ->gestion-> Sécurité -> Valide redirect Uri définie à cette fin, http:/../ signe-instagram
Hors fin d'instagram extrait python échoue en raison d'un manque de contenu-type d'en-tête HTTP
response, content = http_object.request(url, method="POST", body=data,headers = {"Content-type": "application/x-www-form-urlencoded"})
ajouter application / x-www-form-urlencoded travaillé pour moi
je mentionnerai ce qui a fonctionné pour moi.
Étape 1 . Générer un nouveau client secret à partir de votre panel.
l'Étape 2 . Suivez l'étape 1 mentionnée ici pour obtenir le code à nouveau.
l'Étape 3 . Envoyer la demande à nouveau avec les paramètres modifiés.
assurez-vous que vous êtes connecté dans le navigateur lorsque vous envoyez demande. Vous obtiendrez la réponse nécessaire.