Kann ich speichern Facebook access token und verwenden Sie es später?
Ich bin Aufbau einer web-app (PHP) verwendet FB verbinden. Ich erfolgreich registrieren /anmelden Benutzer mit Hilfe der PHP-lib zur Verfügung gestellt von facebook. Auch kann ich post an die Wand, mit diesem code
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
$facebook = new Facebook(array(
'appId' => $fb_key,
'secret' => $fb_secret,
'cookie' => true, //enable optional cookie support
));
$session = $facebook->getSession();
if ($session)
{
$facebook->api('/me/feed', 'POST', array('message'=>$message, 'link'=>$link['href'], 'name'=>$link['text']));
}
Allerdings, wenn ich manuell gehe auf meinen browser-cookie-manager, und löschen Sie das cookie, das speichert FB-Sitzung, der code funktioniert nicht. Das einzige was ich habe ist der user FB-ID, die ich speichern in der DB. Gibt es eine Möglichkeit, post-user-Wand, auch wenn der FB-Sitzungen verloren? Ist es sinnvoll zum speichern der Benutzer-FB access token in DB post an die Wand, die später oder ist der access-token von relativ kurzer Dauer?
Hier ist ein Beispiel für die situation, die passieren könnte, in meiner app:
Benutzer klickt auf der fb-button, autorisiert die app, bekommt umgeleitet zurück zu meiner Seite, wo ich automatisch ein Konto erstellen, basierend auf Daten von FB, auch ich store user ' s FB-ID, so dass ich konnte die Zeichen in dieser Bedienungsanleitung später. Jetzt blättert er Seite, tritt ein paar Infos und diese info wird gepostet, um seine Mauer. Ist alles in Ordnung so weit, weil Ihr browser hält das cookie erstellt von FB. Jetzt Benutzer die Seite verlässt und Kontakte site-admin. Admin öffnet seinen eigenen browser, geht zu admin-interface und postet etwas im Namen dieses Benutzers. Jetzt, nachdem die Benutzer die FB ID und vorausgesetzt, der Benutzer hat keine Berechtigungen widerrufen, kann ich noch posten dies an seine Wand?
InformationsquelleAutor der Frage Eugene | 2011-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE: Diese Antwort ist nicht mehr gültig, da offline_access " ist veraltet.
Müssen Sie beantragen die offline_access permission. Überprüfen Sie die Berechtigungen doc.
BEARBEITEN Pro die Updates und Kommentare - einige Infos über die Entfernung der offline_access finden hier.
InformationsquelleAutor der Antwort NG.
Mit der Facebook PHP-SDK v3 (finden Sie auf github), es ist ziemlich einfach zu Fragen, und verwenden Sie ein Benutzer offline-Zugriff-token. Hier ist, wie Sie das tun.
Bekommen, die den offline-Zugriff-token
Zuerst Sie überprüfen, ob der Benutzer angemeldet ist oder nicht :
Wenn er es nicht ist, generieren Sie den "Login mit Facebook" URL Fragen, für die
offline_access
- Genehmigung :Dann zeigt der link in der Vorlage :
Dann, wenn der Benutzer angemeldet ist, können Sie abrufen das offline-token für den Zugriff auf und speichern es. Um es zu bekommen, rufen Sie auf :
Verwenden Sie den offline-Zugriff-token
Verwenden Sie den offline-Zugriff-token, wenn der Benutzer nicht eingeloggt ist :
Und jetzt können Sie API-Aufrufe für diesen Benutzer :
Hoffe, das hilft !
InformationsquelleAutor der Antwort Quentin