2012-04-10 3 views
1

Ich bestelle, um Zugriff auf die Facebook-API im Auftrag eines Benutzers zu erhalten, muss ein OAuth access_token erhalten, der Prozess ist gut dokumentiert (obwohl es einige nicht dokumentierte Anforderungen von FB scheint), aber von Zeit zu Zeit Erhalten Sie diese "Fehler beim Bestätigen des Bestätigungscodes." wenn Sie versuchen, einen Validierungscode für ein access_token auszutauschen."Fehler beim Bestätigen des Bestätigungscodes." Bei der Anfrage access_token

Es scheint eine Menge Leute zu haben, die solche Probleme haben und die meiste Zeit scheint das redirect_uri das Problem zu sein, aber hier ist redirect_uri in Ordnung (es ist genau das gleiche wie das, das an den Auth Dialog übergeben wird, endet mit ein Schrägstrich und habe keine funky Zeichen oder eine nachfolgende Abfragezeichenkette, las ich fast alle Threads auf SO über dieses Problem und keine der vorgeschlagenen Lösungen löste mein Problem)

Was ist das faszinierendste ist, dass, wenn ich meine überprüfe Protokolle, wo ich schreibe die genaue Anfrage URL, die ich benutze, und manuell versuchen, um das Access-Token zu bekommen, dann funktioniert es. Es ist so, als ob die Anfrage fehlschlägt, wenn sich der Benutzer anmeldet, aber nach einiger Zeit funktioniert.

Also die Tatsache, dass es schließlich funktioniert scheint zu zeigen, dass die Anfrage in Ordnung ist, aber es gibt ein Problem auf der Facebook-Seite, als ob es einige Replikation beteiligt war, die zwischen dem Zeitpunkt der Auth Dialog nicht abgeschlossen ist Ding und ich versuche, den Code für ein Token auszutauschen.

Ich habe einen Wiederholungsmechanismus eingerichtet, in der Hoffnung, dass die Verzögerung zwischen zwei Aufrufen ausreichen würde und der zweite Aufruf erfolgreich wäre, aber es funktioniert auch nicht.

Auch es funktioniert die meiste Zeit und ich kann keinen Unterschied zwischen, wenn es funktioniert und wenn es scheitert, nur der Benutzer ändert.

Jeder Vorschlag würde sehr geschätzt werden.

+0

FYI, es wäre einfacher, Ihre Frage zu verstehen, wenn Sie im Voraus erwähnt haben, dass Sie über die Facebook-API sprechen. –

+0

Nick, du hast Recht, und ich kann auch sagen, dass ich dich wegen des gae-Tags aus dem Wald geholt habe, wenn es hier nicht gilt (obwohl es auf Gae läuft) –

+0

Wenn du in eine Facebook-Seite einbettest, dann Ich habe festgestellt, dass die signierte Anfrage eine viel einfachere Möglichkeit bietet, das OAuth-Token zu erhalten. Wenn Sie jedoch nicht bei facebook sind (wie bei der alten facebook connect), dann stecken Sie fest mit dieser Methode - die Sie arbeiten lassen können, aber ein wenig knifflig ist. –

Antwort

0

Ich stieß gerade auf dieses Problem und löste es.

Das Problem war, dass ich die redirect_uri in der oauth Anruf auf http://apps.facebook.com/myapp/ statt https://apps.facebook.com/myapp/ angegeben.

Eine Sache, die irgendwie seltsam war, ist, dass die gleichen Parameter funktionierten, wenn ich sie in das Adressfeld des Browsers eingab, aber nicht als serverseitige Anforderung von der Anwendung.

Es ist pro Benutzer möglich anzugeben, ob Sie mit oder ohne HTTPS in Facebook stöbern möchten. Daher empfehle ich, dass Sie die Einstellungen in beiden Modi testen, wenn Sie Ihren Authentifizierungsablauf testen.

+0

das klingt gut! –

Verwandte Themen