2011-01-06 6 views
2

Ich habe Offline-Zugriff vom Benutzer gewährt und läuft ab = 0 für die Sitzung, so dass es nie abläuft. Ich habe alle Sitzungswerte wie access_code usw. in einer Datenbank gespeichert. Unmittelbar nach dem Speichern der Werte kann ich den Newsfeed lesen. Nach zwei Sekunden, wenn ich versuche, diese gespeicherten Sitzungswerte zu verwenden, um den Newsfeed des Benutzers zu lesen, funktioniert es nicht. OAuthException: Ein aktiver Zugriffstoken muss verwendet werden, um Informationen über den aktuellen BenutzerFacebook API offline Newsfeed Zugriff

Php abzufragen, ich diese Linie bin mit Newsfeed zu lesen: $result=$facebook->api("/me/home?access_token=".$access_token);

Seltsam, wenn ich den Zugangscode zu der URL eingeben des Browsers funktioniert es:

https://graph.facebook.com/me/home?access_token= $ access_token.

Denken Sie daran, wenn der Benutzer Ihnen die Erlaubnis gibt, können Sie diese erhalten in url: http://example.it/home/newsfeed.php?perms=<permissionlist>&selected_profiles=<uid>&installed=1&session={session_key:<session_key>,uid:<uid>,expires:0,secret:<secret>,access_token:<firstpart>|<secondpart>|<third part>,sig:<sig>}

meine Berechtigungsliste ist folgendes:

„friends_about_me, friends_education_history, friends_likes, friends_interests, friends_location, friends_religion_politics, friends_work_history, publish_stream, friends_activities, freunde_events, friends_hometown, freunde_location, user_interests, user_likes, user_events, user_about_me, user_status , user_work_history, read_requests, read_stream, offline_access, user_religion_politics, email, user_groups ";

, wenn ich die URL oben auf jedem Browser eingeben, es gibt mir die News-Feed von uid, wie die newsfeed.php den PHP-Code hat die Newsfeed ausgibt. Es spielt keine Rolle, ob der Benutzer angemeldet ist oder nicht. IE lädt sogar das JSON-Ergebnis als Datei

So die Sitzungsinformationen ist nicht wirklich abgelaufen, es funktioniert. Aber irgendwie kann ich Facebook nicht glauben, dass ich die richtigen Zugangsdaten habe, um den Newsfeed zu lesen.

Jede Hilfe wird sehr geschätzt. Bitte schreibe, wie ich die Sitzungswerte rekonstruieren kann und dass Facebook an mich glaubt.

Meine letzte Lösung kann auf meinem aktualisierten Blog: http://akcora.wordpress.com/


Ich vergaß auch zu erwähnen, dass, auch wenn das Futter nicht funktioniert, kann ich immer noch Statusmeldungen an das Profil des Benutzers schreiben . Das macht kein sinn. Ich bin mir fast sicher, dass ich einen Fehler bei der Codierung mache. Dies ist zum Beispiel der Status Buchungscode, der funktioniert:

aber den Feed bekommen funktioniert nicht. Die Sicherheit sollte für das Posten strenger sein, als den Newsfeed zu bekommen, richtig?

+0

Sie das Zugriffstoken Sind urlencoding wenn die Bibliothek-Funktion? Es muss möglicherweise codiert werden, bevor Sie es mit dieser Funktion verwenden. –

Antwort

0

poste das access_token als Parameter für die API-Funktion und nicht als get-Parameter in der URL.

keine Sorge, die Facebook-Bibliothek wird die Arbeit für Sie erledigen ...

$facebook->api("me/feed",array(
    "access_token"=>$access_token 
)); 

und übrigens - der Sitzungsparameter ist in der neuen OAuth-Authentifizierungsmethode nicht mehr verfügbar.

die Sitzung wurde in signed_request param (oder Code auf Serverseite) bewegt

Verwandte Themen