12 Stimmen

Facebook-API ohne Client-Authentifizierung für öffentliche Inhalte

Ich entwickle gerade eine Website für einen Kunden, der die Fotos seiner Produkte bereits auf Facebook hat, und er möchte, dass die gleichen Alben auf seiner Website repliziert werden. Ich habe bereits Facebook Connect verwendet, also habe ich eine Kombination aus photos.getAlbums et photos.get um die Galerien dynamisch zu gestalten.

So weit, so gut, aber dann wurde mir klar, dass, wenn kein Benutzer über FBC angemeldet ist, keine Sitzung erstellt wird und die API unbrauchbar wird, selbst für Inhalte, die öffentlich zugänglich sind. Ich möchte natürlich die Alben allen zeigen und nicht nur den Leuten, die ihre Konten verbinden.

Funktionieren alle Funktionen der Facebook-API auf diese Weise? Was ist die beste (einfacher zu implementierende) Umgehung für diese Situation?

11voto

lacker Punkte 5229

Seit September 2010 können Sie sich nur noch als Anwendung authentifizieren, ohne einen zugehörigen Benutzer. Siehe http://developers.facebook.com/docs/authentication/ für Details. Oder Sie können diesen Beispielcode ausführen, um ein Zugriffstoken zu erhalten:

curl -F grant_type=client_credentials \
 -F client_id=your_app_id \
 -F client_secret=your_app_secret \
 https://graph.facebook.com/oauth/access_token

3voto

lima Punkte 759

Fürs Protokoll: Ich konnte diese Situation lösen, indem ich ein kleines Backend entwickelt habe, das den Kunden auffordert, sich einmal bei Facebook anzumelden und die offline_access erweiterte Erlaubnis an die FB-App, damit ich seinen Sitzungsschlüssel speichern und ihn zur Authentifizierung des Facebook-API-Clients verwenden kann, wenn ich FQL verwenden muss, um nicht-öffentliche Inhalte zu erhalten.

Man könnte natürlich etwas Zwischenspeicherung einbauen, um unnötige Anfragen an Facebook zu vermeiden, aber es funktioniert jetzt schon seit Monaten einwandfrei, ohne an irgendwelche Grenzen zu stoßen, von denen ich weiß.

0voto

Mike Heinz Punkte 1751

Das ergibt für mich keinen Sinn - ich habe eine (relativ einfache) App, die in Facebook gerendert wird, auch wenn der Benutzer noch nie bei Facebook angemeldet war (in diesem Fall werden Demodaten angezeigt).

Wenn ich die Facebook-PHP-Bibliothek verwende, mache ich einfach Folgendes:

$facebook = new Facebook($api_key, $secret);

Es ist keine Sitzungsnummer erforderlich - aber natürlich werden API-Funktionen, die auf Informationen über den Benutzer angewiesen sind, nicht funktionieren.

Sie können sich auch für eine "unendliche Sitzung" für Ihre Anwendung - Sie könnten einen unendlichen Sitzungsschlüssel für sich selbst erstellen und diese Sitzung für den Zugriff auf die API verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X