Ich habe eine Facebook-Desktop-Anwendung und verwende die Graph-API . Ich kann das Zugriffstoken abrufen, aber danach kann ich die Benutzer-ID nicht mehr abrufen.
Mein Fluss ist wie folgt:
Ich sende den Benutzer mit allen erforderlichen erweiterten Berechtigungen an https://graph.facebook.com/oauth/authorize .
Auf meiner Weiterleitungsseite erhalte ich den Code von Facebook.
Dann führe ich mit meinem API-Schlüssel eine HTTP-Anfrage an graph.facebook.com/oauth/access_token aus und erhalte das Zugriffstoken in der Antwort.
Ab diesem Zeitpunkt kann ich die Benutzer-ID nicht mehr erhalten.
Wie kann dieses Problem gelöst werden?
facebook
facebook-graph-api
Mohoch
quelle
quelle
https://graph.facebook.com/me?fields=id&access_token=xxxxxx
Der einfachste Weg ist
Dann erhalten Sie eine JSON-Antwort, die nur die Benutzer-ID enthält.
quelle
Das Facebook-Zugriffstoken sieht ebenfalls ähnlich aus: "1249203702 | 2.h1MTNeLqcLqw __. 86400.129394400-605430316 | -WE1iH_CV-afTgyhDPc"
wenn Sie den Mittelteil mit | extrahieren zu spalten bekommt man
2.h1MTNeLqcLqw __. 86400.129394400-605430316
dann wieder aufteilen durch -
Der letzte Teil 605430316 ist die Benutzer-ID.
Hier ist der C # -Code zum Extrahieren der Benutzer-ID aus dem Zugriffstoken:
WARNUNG: Die Struktur des Zugriffstokens ist nicht dokumentiert und passt möglicherweise nicht immer zum obigen Muster. Verwenden Sie es auf eigenes Risiko.
Update Aufgrund von Änderungen in Facebook. Die bevorzugte Methode zum Abrufen der Benutzer-ID vom verschlüsselten Zugriffstoken lautet wie folgt:
quelle
Sie können den folgenden Code für onSuccess verwenden (LoginResult loginResult)
quelle
Sie müssen nur eine andere Graph-API drücken:
Es wird auch Ihre E-Mail-ID und Benutzer-ID (für Facebook) geben.
quelle
Mit der neuesten API ist hier der Code, den ich dafür verwendet habe
quelle
in FacebookSDK v2.1 (ältere Version kann nicht überprüft werden). Wir haben
Allerdings laut Kommentar in FacebookSDK
@discussion Dies kann möglicherweise nicht für Anmeldeverhalten wie das iOS-Systemkonto ausgefüllt werden.
Vielleicht sollten Sie prüfen, ob es verfügbar ist, und dann, ob Sie es verwenden, oder die Anfrage aufrufen, um die Benutzer-ID zu erhalten
quelle
Schauen Sie sich diese Antwort an , in der beschrieben wird, wie Sie eine ID-Antwort erhalten. Zuerst müssen Sie eine Methode zum Abrufen von Daten erstellen:
Verwenden Sie dann einfach Ihre Methode, wann immer Sie möchten:
quelle