Ich erstelle eine App, mit der Benutzer ihre Facebook-Fanseiten verwalten können. Dies erfordert die folgenden zwei Zugriffstoken:
- Ein Benutzerzugriffstoken
- Ein Seitenzugriffstoken
Ich bin mit Benutzerzugriffstoken ziemlich vertraut, aber nicht mit Seitenzugriffstoken.
Weiß jemand, wie lange das Seitenzugriffstoken gültig bleibt? Alles, was ich auf der Facebook-Website finden kann, ist dieser kurze Absatz , in dem nichts über den Ablauf erwähnt wird.
Kann ich davon ausgehen, dass das offline_access
Seitenzugriffstoken auch unbegrenzt gültig ist , wenn ich das Benutzerzugriffstoken mit der Berechtigung anfordere (es sei denn, der Benutzer ändert sein Kennwort oder deaktiviert meine App manuell)?
Ich frage, weil ich wissen möchte, wie oft ich die Facebook Graph-API abfragen und Seitenzugriffstoken erwerben soll. Sollte ich sie einfach einmal anfordern, wenn sich der Benutzer registriert? Oder sollte ich sie bei jedem API-Aufruf anfordern, falls sie sich ständig ändern? Letzteres ist offensichtlich anstrengender!
Antworten:
Seitentoken verfallen, wenn das Zugriffstoken für den Benutzer abläuft, von dem das Seitentoken generiert wurde. Bearbeiten 6.28.2013: Wenn Sie das Benutzerzugriffstoken erweitern und ein neues Seitenzugriffstoken für den Benutzer erhalten, läuft dieses Seitentoken nur ab, wenn der Benutzer Ihre App abautorisiert.
Der Offline-Zugriff ist jetzt veraltet, aber Sie können ein Zugriffstoken auf 60 Tage verlängern. Wenn Sie das Zugriffstoken des Benutzers
erweitern,wird derAblaufder von diesem Benutzerkonto generierten Seitentokenebenfalls verlängert, damit ernicht abläuft (bearbeitet am 28.08.2013). Der Wert für die Seitentoken kann sich nach dem Erweitern ändern. Stellen Sie daher sicher, dass Sie/accounts
nach dem Erweitern des Benutzertokens neue Seitentoken aus der Diagrammverbindung des Benutzers abrufen.Sie können diese Zugriffstoken weiterhin einmal pro Tag erweitern. Daher sollten Sie die Zugriffstoken jeden Tag neu generieren, an dem der Benutzer mit Ihrer App interagiert.
Siehe https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens https://developers.facebook.com/docs/facebook-login/access-tokens/#extending https: // Entwickler .facebook.com / docs / facebook-login /
https://developers.facebook.com/roadmap/offline-access-removal/ https://developers.facebook.com/blog/post/2011/05/13/how -to - Handle-Expired-Access-Token /
quelle
manage_pages
dieser App im Grafik-API-Explorer ein Zugriffstoken für diese App . Drittens schauen Sie auf den Zugriffstoken Ihrer Seiten nach/me/accounts
. Schließlich verwenden Sie die Debug - Konsole den Zugriffstoken Ablauf zu überprüfen. In der Tat verfallen die Seitenzugriffstoken nach der Migration nach 1 Stunde, anstatt auf unbestimmte Zeit zu dauern. Zeit, deine Apps zu ändern!"the page tokens generated from that user account will also have their expiration extended to match"
ist leicht irreführend. Durch die Erweiterung des Zugriffstokens des Benutzers wird der Ablauf der vorhandenen Seitenzugriffstoken NICHT erhöht . Stattdessen können Sie nach dem Erweitern des Zugriffstokens eines Benutzers neue Token von/me/accounts
"If the access_token was originally generated from a client-side OAuth call or through a signed_request, the endpoint will actually return a new access_token."
Ich denke, seit Sie mit dem Graph API Explorer getestet haben, wurde dieses Zugriffstoken clientseitig generiert und daher nach seiner Erweiterung geändert.{"error_code":1,"error_msg":"An unknown error occurred"}
Sie können ein Seitenzugriffstoken so erweitern, dass es niemals abläuft. Die Dokumentation ist etwas matschig, aber die folgenden Seiten enthalten relevante Informationen, und Sie müssen offensichtlich Administrator der Seite sein. Achten Sie genau auf Szenario 4 und 5 unter dem zweiten Link.
https://developers.facebook.com/docs/reference/api/page/#page_access_tokens https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token
Mit dem Graph Explorer können Sie ganz einfach Token von Facebook abrufen. Mit dem Diagramm-Explorer können Sie auch das Token debuggen, in dem das Ablaufdatum aufgeführt ist, sodass Sie überprüfen können, ob es niemals abläuft. Grafik-Explorer: https://developers.facebook.com/tools/explorer
Klicken Sie auf die Schaltfläche Get Access Token, um Ihr Token abzurufen. Wenn Sie Ihre ID in der Abfrageleiste behalten, hängen Sie einfach / Konten an Ihre ID an, damit sie so aussieht :
/123456789101112/accounts
. Stellen Sie sicher, dass es sich um eine GET-Anforderung handelt (das Dropdown-Menü links neben der Abfrageleiste).Dadurch werden alle Seiten abgerufen, für die Sie konfiguriert sind. Sie müssen dann eine GET-Anfrage stellen an:
Ihre APP_ID und APP_SECRET finden Sie in den Anwendungsverwaltungseinstellungen. Verwenden Sie Ihr persönliches Zugriffstoken als letzten Parameter (EXISTING_ACCESS_TOKEN). Dadurch wird ein 60-Tage-Token für den persönlichen Zugriff zurückgegeben. Kopieren Sie dieses Token in die Zugriffstoken-Leiste, die sich über der Abfrageleiste befindet. Stellen Sie nun eine GET-Anfrage an USER_ID / accounts, wie wir es am Anfang getan haben. Dadurch wird erneut eine Liste der Seiten zurückgegeben, für die Sie konfiguriert sind.
Diesmal verfallen jedoch die mit den Seiten aufgelisteten Seitentoken nicht. Sie können dies überprüfen, indem Sie ein Seitentoken in die Zugriffstokenleiste kopieren und auf die Schaltfläche Debuggen klicken. Auf diese Weise erhalten Sie Details zu diesem Zugriffstoken, einschließlich der Ablaufzeit, die in diesem Fall niemals sein sollte.
AKTUALISIEREN
Ich habe auch festgestellt, dass der Grafik-Explorer von Facebook manchmal mit dem Benutzerkontext verwechselt wird und möglicherweise nicht immer zuverlässig ist. Alternativen sind Fiddler oder Postman .
quelle
Ich bin nicht sicher, ob Facebook Änderungen vorgenommen hat, um diese Fehler zu beheben, aber es scheint, dass Benutzerzugriffstoken nicht ablaufen, sobald dem Benutzer Seitenzugriffstoken gewährt wurden. Basierend auf meinen Tests geht der Fluss ungefähr so:
Ich hoffe, dies klärt die Verwirrung hier auf. Ich habe dies mit vielen verschiedenen Benutzern in unserer App getestet und sehe jedes Mal dasselbe.
Wenn keine Seitenzugriffstoken angefordert werden, läuft das ursprüngliche Benutzerzugriffstoken nach 60 Tagen ab.
quelle
Das Facebook-Seitenzugriffstoken ist dem Benutzerzugriffstoken sehr ähnlich, mit der Ausnahme, dass "es sich als Benutzer ausgibt" als Administrator der Seite und deren Verwaltung ermöglicht [die Berechtigung zum Verwalten der Seite ist erforderlich].
Wenn der App die Berechtigung Offline_access erteilt wird, läuft die Seite access_token NICHT ab (es sei denn, der Benutzer ändert sein Kennwort oder deaktiviert die App manuell).
Verwenden Sie den folgenden Link, um die Details eines ausgestellten Zugriffstokens zu überprüfen.
https://developers.facebook.com/tools/debug/
quelle
Siehe dieses https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token Wenn Sie also ein Kurzzeit-Zugriffstoken erhalten und es auf ein Long-Live-Zugriffstoken erweitern, wird dies nicht nur für das Seitenzugriffstoken erweitert. Siehe Szenario 5: Seitenzugriffstoken
quelle
Die Dokumentation von Facebook zu diesem Thema (langlebige Token für den Seitenzugriff) stimmt nicht mit dem überein, was in der Realität passiert. In der Dokumentation wird behauptet, dass Seitenzugriffstoken, die über erweiterte / langlebige Benutzerzugriffstoken erworben wurden, niemals ablaufen. In der Realität laufen diese Seitenzugriffstoken jedoch innerhalb von 60 Tagen ab.
Siehe den Facebook-Fehler: http://developers.facebook.com/bugs/461517520524921
quelle
offline_access
ist jetzt veraltet.In einer anderen Frage erkläre ich, wie das Seitenzugriffstoken erweitert wird .
quelle
Seitenzugriffstoken sind abgelaufen, wenn das Zugriffstoken des Benutzers abgelaufen ist. Sie können das Benutzerzugriffstoken auf bis zu 60 Tage verlängern, damit das Seitenzugriffstoken eine lange Lebensdauer hat.
Schauen Sie sich meinen Blog an und befolgen Sie die Schritt-für-Schritt-Anleitung zum Abrufen eines erweiterten Zugriffstokens und zum Abrufen der Fanpage-Zugriffstoken.
quelle