webentwicklung-frage-antwort-db.com.de

Instagram oauth api gibt {"code": 400, "error_type": "OAuthException", "error_message": "Kein übereinstimmender Code gefunden." }

Ich arbeite an einer Anwendung, die in Instagram API integriert ist, um auf die Benutzerinformationen zuzugreifen. Ich habe das Access Token erfolgreich mit der Authorize-URL abgerufen, kann jedoch die userId nicht mit der Access_token-URL abrufen:

ich habe beide Endpunkte ausprobiert:

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

mit dem Postkörper als:

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

(Die Daten in der Anfrage werden geändert), aber ich bekomme die folgenden Informationen 

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

Ich habe Unmengen von Fragen und Fragen gesehen, konnte aber keine Lösung für das Problem finden.

Die paar Fragen, die ich habe, sind:

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.

Bitte helfen Sie mir, denn ich bin völlig festgefahren und kann meine Fristen einhalten.

24
Amritpal Singh

Für mich das Deaktivieren von Deaktivieren von implizitem OAuth in instagram developer -> Clients verwalten hat das Problem behoben

12
h0mayun

Ich fand, dass die Verwendung von form-data oder application/x-www-form-urlencoded gut funktioniert. Das Wichtigste ist, dass die Variable code von der Umleitung abgerufen wird. URI wird nur von einer Anfrage verwendet. Dies bedeutet, dass Sie das Zugriffstoken once für die code anfordern können. Wenn Sie mehrmals mit derselben code anfordern, wird der Fehler wie folgt angezeigt:

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

Wünsche dir das Beste ;)

1
yuhua

Ich habe den gleichen Fehler bekommen. Es scheint, dass das Spam-System von instagram den Zugriff von Benutzern auf nicht offizielle Anwendungen unterbindet. Ändern Sie einfach das Passwort des Benutzers. In meinem Fall war es help . Versuchen Sie auch, eine andere Anwendung zu erstellen.

UPD

Von meine Antwort zu einer anderen Frage

Anscheinend erhalten Benutzer mehr als eine code, und Sie sehen first code, benötigen jedoch second. Versuchen Sie relogin-Benutzer, wenn Sie eine Fehlermeldung erhalten. Der Benutzer sieht keine Instagram-Seite mit der Bestätigungstaste, nur Umleitungen.

Möglicher Fehleralgorithmus:

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

Versuchen Sie, den Parameter redirect_uri in zu url zu kodieren 

http%3A%2F%2Flocalhost

Und Ihr Code-Parameter enthält das "." Zeichen, das möglicherweise ein Fehler ist.

code=1351860224.4827556.5dc92c4d15ea4a4ea1b0d33eaf0eef19

könnte das Problem verursachen

"error_message": "No matching code found."

"5dc92c4d15ea4a4ea1b0d33eaf0eef19" scheint der richtige Code zu sein

0
Charlie

Aus Das spätere Python-Snippet von Instagram schlägt fehl, weil der HTTP-Header des inhaltlichen Typs fehlt

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

das Hinzufügen von application/x-www-form-urlencoded funktionierte für mich

0
sathish

Das Problem ist hier, dass die URL umgeleitet werden muss als http: // localhost/signin-instagram

signin-instagram Teil ist sehr wichtig Gehen Sie zu Instagram.com/developer -> Client verwalten -> Sicherheit -> Gültige Umleitungs-URIs, die mit diesem Ende festgelegt sind: http: /../Anmelden -instagram

0
user5775067

Ich werde erwähnen, was für mich funktioniert hat.

Schritt 1. Generieren Sie ein neues Kundengeheimnis in Ihrem Panel.

Schritt 2. Folgen Sie dem in Schritt 1 genannten hier , um den Code erneut zu erhalten.

Schritt 3. Senden Sie die Anfrage erneut mit den geänderten Parametern.

Stellen Sie sicher, dass Sie beim Senden der Anfrage im Browser angemeldet sind. Sie erhalten die erforderliche Antwort.

0
Weaver