0251 / 590 837 15
info@a-coding-project.de

Installation Facebook PHP-SDK

Dieser Artikel ist Teil der Serie Eigene Facebook App erstellen.

Heute installieren wir im Facebook-Tutorial die PHP-SDK auf unserem Server – Endlich gibt es Quellcode! Die Facebook PHP-SDK bietet neben dem Zugriff auf Facebook bereits einige Beispiele zur Nutzung. Sie kann von Github bezogen werden.

Update 14.07.2011: Bitte die neuste 2.x-Version nutzen, da die aktuelle Version mit diesem Tutoiral nicht funktioniert.

Im Hauptordner der SDK liegen drei Ordner:

  1. src: In diesem Ordner befindet sich der Kern der SDK. Dieser Ordner muss unbedingt vorhanden sein.
  2. example: – Hier liegt das Beispiel (das stelle ich gleich noch vor)
  3. tests: Ein paar interne API-Tests. Diesen Ordner darfst du ruhig löschen.

Das Beispiel einrichten

Zunächst einmal musst du deine Anwendungs-ID und deinen Anwendungs-Geheimcode in die Datei /examples/example.php eintragen. Das geht so:

$facebook = new Facebook(array(
  'appId'  => 'Deine Anwendungs-Id',
  'secret' => 'Dein Anwendungs-Geheimcode',
  'cookie' => true,
));

Als nächstes überträgst du die Dateien auf deinem Webspace. Jetzt nur noch in der Developer-App unter Facebook-Einbindung den Ordner example eintragen und deine App geht online!

Das Beispiel im Überblick

Schauen wir uns doch mal an, was passiert, wenn wir die example.php direkt im Browser aufruft…

PHP SDK ohne Login

PHP SDK ohne Login

Wie du siehst hast du zwei verschiedene Arten um dich zu authentifizieren. Zum einen über JavaScript und zum Anderen über den Server. Diese Connects sind eher etwas für Apps die nicht direkt in Facebook aufgerufen werden. Wenn Du so etwas machen möchtest würde ich standardmäßig die Server-Variante wählen, da diese auch bei Benutzern ohne JavaScript funktioniert. Wenn du ein bisschen Ahnung von JavaScript hast, kannst du ja auch je nach dem ob JavaScript aktiviert ist die dazu passende Variante anzeigen.

Example auf Facebook

Nun schauen wir und die Seite doch mal auf Facebook selbst an. Dazu musst du einfach die Leinwand-Seite aufrufen (Adresse aus der Developer-App). Bei mir kommt das dabei raus:

Die falsche Leinwand

Die falsche Leinwand

Bei mir kann man an dieser Stelle sehen, dass mein Layout nicht für alle Größen ausgelegt ist :-( Wir wollen aber unsere Beispiel-App betrachten, oder? Da wir in der Leinwand-Url das Verzeichnis angegeben haben, müssen wir unsere example.php in index.php umbenennen. Leider ist es nicht möglich, direkt auf eine Datei zu verweisen.

Ein neuer Versuch:

SDK Beispiel in der Facebook Leinwand

SDK Beispiel in der Facebook Leinwand

Hier kommt znächst die gleiche Seite wie auf unserer Seite. Wir können an dieser Stelle noch keine Daten ziehen! Dafür muss sich der Benutzer erst einloggen und somit unserer Anwendung erlauben Daten auszulesen, zu erfassen, usw.

Wenn du jetzt mal auf Login klickst, kommst du zu einen bekannten Dialog:

Facebook Authentifizierung

Facebook Authentifizierung

Nach dem Login sieht man bereits eine Vielzahl an Informationen:

Eingeloggt in der Facebook App

Eingeloggt in der Facebook App

Du kannst ja mal ein bisschen mit dem Quellcode experimentieren.

Kommentare

Marcel schrieb am 13.03.2011:

Hallo Stefan, ich bin gerade in deinem Blog am lesen, und nun bin ich an dem Punkt wo ich nur noch die example.php auf meinem Webspace laden muss und dann den Ordner in der App umändere in /examples/. Alles auch gut soweit, nur wenn ich dann meine App aufrufen möchte kommt folgendes : Fatal error: Uncaught exception 'Exception' with message 'Facebook needs the CURL PHP extension.' in /var/www/web0/html/canvas/src/facebook.php:20 Stack trace: #0 /var/www/web0/html/canvas/examples/example.php(20): require() #1 {main} thrown in /var/www/web0/html/canvas/src/facebook.php on line 20 Schaut ja schonmal ziehmlich mies aus. nun gut soweit. schau doch mal auf meine App drauf. http://www.facebook.com/apps/application.php?id=204696296222848&sk=page_getting_started wenn du dann auf die andwendung gehst kommt einfach nichts. kannst du mir vielleicht sagen was ich für einer fehler mach. Wäre ja mal echt klasse. Gruß aus Münster Marcel

Stefan Wienströer schrieb am 13.03.2011:

Hi, dir Fehlt die PHP-Erweiterung Curl. Schau mal hier vorbei: http://php.net/manual/de/book.curl.php

Marcel schrieb am 13.03.2011:

Hi Stefan, ich liebe zwar knappe Anntworten, aber mit deiner kannn ich gerade nicht so viel anfangen XD << Ich bin ein Anfänger, glaube ich ^^ LG Marccel

Stefan Wienströer schrieb am 13.03.2011:

Eigentlich ist curl bei der PHP-Installation meistens schon mit dabei. Kannst du mir mal deine PHP-Version schicken?

Marcel schrieb am 13.03.2011:

Ich bin bei Alfahosting.de, und ich spiele meine daten bit filezilla hoch. PHP-Version ich meine da musste ich mal version 4 oder 5 aktivieren. weil der pcpin chat sost nicht lief.

Marcel schrieb am 13.03.2011:

Server Version: 5.0.32-Debian_7etch6 MySQL-Client-Version: 5.0.32 phpMyAdmin - 2.11.9.2 Mehr finde ich gerade nicht.

Stefan Wienströer schrieb am 13.03.2011:

PHP5 wäre schon wichtig. Um die PHP-Version auszulesen kannst du einfach eine neue Datei machen, in dem du zwischen den PHP-Tags ein phpinfo(); eingibst. Wenn du die Datei im Browser öffnest, steht dort alles über deine PHP-Konfiguration.

Marcel schrieb am 13.03.2011:

Schau hier mal schnell : http://emusic-club.de/phpinfo.php ich lösch gleich sofort wieder gibt halt bescheid ;)

Stefan Wienströer schrieb am 13.03.2011:

PHP-Version passt schonmal, ich schau mir das mal kurz genauer an. Kannst es rausnehmen.

Marcel schrieb am 13.03.2011:

Vielen Dank :))

Stefan Wienströer schrieb am 13.03.2011:

Ich glaub du kannst am besten mal bei Alphahosting nachfragen, ob die Curl für dich aktivieren. Wenn das nen V-Server o.Ä. ist, sag bescheid, dann schau ich mich auch nochmal um.

Marcel schrieb am 13.03.2011:

ok dann mach ich das mal, wenn das aktiviert funktioniert das dann ?? na ich bin gespannnt. Danke schonmal.

Marcel schrieb am 13.03.2011:

Die sind so wahnsinnig nett bei alfahosting.de ich hasse deren support: Curl können Sie mit dem Befehl: apt-get install php5-curl installieren. Hast du da eine genauere anleitung zu?

Marcel schrieb am 13.03.2011:

So hey, ich habe es installiert über putty: auslesedatei : http://emusic-club.de/phpinfo.php meld dich dann doch nochmal Gruß Marcel

Stefan Wienströer schrieb am 14.03.2011:

Hi, läuft's denn jetzt? Gruß Stefan

Marcel schrieb am 14.03.2011:

Hey Stefan, nein bei mir klappt noch nichts. wenn du magst ich habe die phpinfo nochmal hier hinterlegt: http://emusic-club.de/phpinfo.php Gruß Marcel

Stefan Wienströer schrieb am 14.03.2011:

Hast du Apache danach schon neu gestartet?

Marcel schrieb am 14.03.2011:

Das muss ich dann heute nachht machen, weil unser chat gerade rappel voll ist. aber danke für den kleinen aber wichtigen tipp^^ LG Marcel

Markus schrieb am 25.06.2011:

Kannst Du nicht mal Clip machen meine erstes Facebook App :) das wäre ganz cool. Toller Artikel hat mir in manche Sachen weiter geholfen.

Sissia schrieb am 30.06.2011:

Hi ich hänge an dem Punkt mit dem App-Eintragen fest. Was meinst du bitte genau, was soll ich wo eintragen?

Stefan Wienströer schrieb am 30.06.2011:

@Markus: Mal sehen ;-) @Sissa: wenn du in der Developer-App bist, steht links in der Seite "Facebook-Einbindung". Darunter kannst du die Url zu deinem example-Ordner eintragen. Wenn du immer noch nicht weiterkommst kannst mich gerne auf Facebook kontaktieren: http://www.facebook.com/profile.php?id=100000409297124

wordi schrieb am 01.07.2011:

Hi, ich habe auf meiner Website nun auch einen facebook Login per PHP SDK eingebunden, dummerweise sendet facebook aber nach erfolgreicher bzw angelehnter/abgebrocher Autorisierung den $code bzw den $error-code in der URL mit, der sollte doch normalerweise vom Script direkt verwertet werden und dann nicht mehr mit in der URL für den User sichtbar übergeben werden. (Es funktioniert zwar alles, aber das stört mich, habe auf deinem Bild auch gesehen, dass der Code da nicht sichtbar zurückgeschickt wird von facebook.) Hast du vllt eine Lösung? :D

Jens schrieb am 09.08.2011:

Hi Stefan, wenn meine App direkt in Facebook aufgerufen wird brauche ich ja nicht unbedingt noch einmal einen Login-Button. Wie kann ich meine App so programmieren, dass der Benutzer sich beim Aufruf automatisch einloggt ?

Stefan Wienströer schrieb am 09.08.2011:

Steht auf der nächsten Seite ;-) http://blog.stevieswebsite.de/2010/12/facebook-php-sdk-beispiel-auf-deutsch/

Stefan Wienströer schrieb am 09.08.2011:

bzw. hier: http://blog.stevieswebsite.de/2011/01/posts-uber-die-facebook-api-schreiben/

Reiner schrieb am 18.08.2011:

Hallo Stefan, bin froh auf Deine Seite beim googeln gestoßen zu sein im Zusammenhang mit Facebook. Wollte mich dem Thema Facebook zunächst mal mit einer eigenen Fanpage per iFrame nähern bevor ich mir das SDK vor die Brust nehme und habe eine Seite per Wordpress bei meinem Hoster erstellt erstellt (510 px breit). Diese wird auch einwandfrei angezeigt in der richtgen Breite. Beim Einbinden in Facebook jedoch wird die Seite mit Scrollbalken angezeigt (Breite schätzungsweise wie ein normaler Blog). Hast Du einen Tip oder Link für mich, der mich der Problemlösung im Sinne von richtiger Einbindung von iFrames über den Button bei der Erstellung einer Anwendung näher bringt? Grüße Reiner

Reiner schrieb am 18.08.2011:

Korektur: über den Button bei der Erstellung einer Anwendung hinaus näher bringt?

Stefan Wienströer schrieb am 18.08.2011:

Welchen BUtton meinst du genau?

Reiner schrieb am 19.08.2011:

Beim Erstellen der App (iFrame) und das es angepasst werden soll... Soweit ist kein Fehler vorhanden, aber es fehlt wohl etwas zusätzlicher Code, um diese Einstellungen auch tatsächlich umzusetzen...

Tino schrieb am 20.09.2011:

Das beispiel hat bei mir so geklappt. Aber jetzt bin ich auf einem anderen Webhoster und es geht nicht mehr. nach dem "Appid =>" wird alles als html text ausgegeben. Das bedeutet doch das irgendwie der phpcode dort aufhört...denke ich mal. Woran kann das liegen?

Stefan Wienströer schrieb am 20.09.2011:

UNterstützt dein neuer Hoster denn PHP?

Reiner schrieb am 20.09.2011:

Ja natürlich (PHP 5)

Kevin schrieb am 25.03.2012:

Hi hat sich seit dem tutorial wieder etwas geändert ? Bei mir kommt nach login das facebook logo darunter steht gehe zu facebook. wenn ich dort klicke komme ich auf Fehler: Es ist ein Fehler aufgetreten. Bitte versuche es später noch einmal. mehr nicht ?!

Github schrieb am 22.11.2012:

Zitat Github: We have created a new repository for this project: https://github.com/facebook/facebook-php-sdk. Please update anything you have pointing at this repostory to this location before April 1, 2012. Wer also das SDK noch sucht, muss eine andere Github-Seite nutzen.