user Avatar

Zugriff auf Facebook Daten von außen

Facebook bietet nicht nur Apps den Zugriff auf Daten seiner Nutzer, sondern auch die Möglichkeit, mit Skripten außerhalb von Facebook Daten abzufragen. Man kann von außen alle Daten abfragen, die jeder Nutzer sehen würde, wenn er kein Facebook Mitglied wäre oder wenn er in Facebook nicht eingeloggt ist.

Besonders wichtig ist zu wissen, dass man Facebook von außen nach Personen oder Inhalten durchsuchen kann. Man kann z.B. automatisch Facebook nach Firmen oder Marken durchsuchen und die existierenden Daten für sich in seiner Datenbank auf seinem Server speichern – und Änderungen verfolgen.

Ebenso kann man Informationen über Pages oder andere Facebook-Elemente direkt von außen (automatisiert) abfragen.

Diese Möglichkeit ist Besonders Interessant für Homepage-Betreiber, die selbst eine Kundendatenbank besitzen. So können die eigenen Daten mit hinterlegten Facebook-Daten des Kunden ergänzt und mehr Informationen pro Kunde gespeichert werden (vorausgesetzt der Kunde ist in Facebook registriert). Auch bestimmte Inhalte/Firmen/Organisationsdaten können, wenn sie in Facebook existieren, abgefragt und für sich in der eigenen Datenbank gespeichert werden.

Das alles ohne bei Facebook registriert oder in irgendeiner Form angemeldet sein. Auch eine App-Anmeldung ist hierfür nicht nötig!

Abfrage der Daten von außen

Dieses Kapitel zeigt die Programmierung eines direkten Zugriffs auf Facebook-Daten, welche man über offene Schnittstellen abfragen kann, ohne in Facebook eingeloggt zu sein. Wir benutzen für den Zugriff auf Facebook Schnittstellen hier das PHPforFB-Framework, das kostenlos im Internet angeboten wird und eine enorme Vereinfachung und Zeitersparnis für Facebook-Programmierung darstellt.

Das PHPforFB-Framework kann kostenlos unter http://www.phpforfb.com/de/ bezogen werden.

Hier erhalten Sie einen Überblick über die Funktionen und Eigenschaften des PHPforFB Frameworks, welche speziell die direkte Datenabfrage von außen unterstützen.

Spezielle Methoden:


GraphAPI()Mit dieser Methode kann man direkt auf die GraphAPI von Facebook zugreifen. Man hat die Möglichkeit, direkt mit der Facebook-Schnittstelle zu kommunizieren. Die GraphAPI ist die Haupt-API (Kommunikationsschnittstelle) von Facebook und wird ständig erweitert.
SearchSite()Die Methode durchsucht alle öffentlichen Elemente von Facebook nach dem gewünschten Begriff und liefert das Ergebnis in einem Array zurück.
GetPageInfo()Diese Methode liefert die verfügbaren Informationen einer Facebook Page/Seite.
GetObjectInfo()Diese Methode ruft Informationen zu einer beliebigen Facebook ID ab.


Mit PHPforFB können Ihre PHP-Programme alle von Facebook öffentlich verfügbaren Informationen schnell und einfach nutzen. Sie schreiben eine ganz normale PHP-Anwendung und binden hierfür PHPforFB ein, ohne dass Sie dazu eine Facebook-Anwendung anlegen müssen. Sie müssen nicht einmal in Facebook registriert sein. Sie können von jedem PHP-Skript und von jedem Server aus ganz einfach auf diese Daten zugreifen.

Beispiele für Abfragen von außen

Zunächst konstruieren wir ein Grundgerüst für die PHP-Datei, in der wir Facebook Daten von außen abfragen wollen. Anders als bei der Variante einer in Facebook integrierten Anwendung, benötigen wir nur einen einfachen Konstruktoraufruf, ohne die Angabe einer App-ID oder andere Parameter.

Wir benutzen den „direct_use“-Modus von PHPforFB.

[code lang=’php‘] include(‚phpforfb_framework.php‘);
$structInit = array(
‚mode‘ => ‚direct_use‘
);
$fbEngine = new PHPforFB($structInit);
if($fbEngine->lastErrorCode>0){
#Ein Fehler beim Erstellen ist aufgetreten.
echo „PHPforFB Error: „.$fbEngine->lastErrorCode.“ -> „.$fbEngine->lastError;
exit;
}
[/code]

Sobald die Instanz kreiert ist, können wir die Methoden von PHPforFB einsetzen, um Daten von Facebook abzufragen.

Zuerst suchen wir nach allen Pages, die im Namen „Cola“ tragen:

[code lang=’php‘] //Suche starten
$result = $fbEngine->SearchSite(‚cola‘,’page‘);
//Ergebnis durchgehen und ausgeben
if(count($result) > 0){
echo;
foreach($result as $value){
print_r($value);
}
}
[/code]

Anschließend holen wir zu jedem gefundenen Eintrag die dazugehörigen Daten und Informationen der Page:

[code lang=’php‘]//pageinfos holen
if(count($result) > 0){
foreach($result as $value){
$result2[$value[‚id‘]] = $fbEngine->GetPageInfo($value[‚id‘]);
print_r($result2[$value[‚id‘]]);
}
}
[/code]

Dann interessiert uns, wann das letzte Posting bzw. die Erwähnung der Serie „The Big Bang Theory“ war und was geschrieben wurde. Hierfür suchen wir in Facebook öffentliche Postings nach dem  Begriff „Big Bang Theory“.

[code lang=’php‘]//das neuste posting über „big bang theory“ abfragen
$result = $fbEngine->SearchSite(‚big bang theory‘,’post‘,1);
if(count($result) > 0){
echo;
print_r($result);
$lastpost_time = $result[‚created_time‘];
}
[/code]

Jetzt interessiert uns auch noch, ob die Schauspielerin „Penny“ dieser Serie bei Facebook zu finden ist und wenn ja, unter welcher URL ihr Profil oder ihre Page aufgerufen werden kann. Die Schauspielerin heißt „Kaley Cuoco“. Wir schauen ebenfalls, ob sie eine eigene Homepage besitzt, die sie bei Facebook angegeben hat.

[code lang=’php‘]//Informationen zu einer bestimmten FacebookUserID
$result = $fbEngine->graphApi(‚/KaleyCuoco‘);
//Ergebnis ausgeben
if($result !== FALSE){
//KaleyCuoco ist bei facebook zu finden
echo ‚Kaley Cuoco ist bei Facebook: ‚.$result[‚link‘].;
if(!empty($result[‚website‘])){
echo ‚Kaley Cuoco hat eine Homepage: ‚.$result[‚website‘].;
}
}
[/code]

Anhand der oben gezeigten, kurzen Beispiele sollte dargestellt werden, wie man PHPforFB einsetzt, um gewünschte Informationen direkt bei Facebook abzufragen.

Der eigenen Kreativität und Anwendungen sind keinerlei Grenzen gesetzt.


Hubertus Porschen

Dr. Hubertus Porschen ist CEO der App-Arena GmbH. Er ist zudem Bundesvorsitzender des Verbandes "Die jungen Unternehmer" und Keynote Speaker für Digitalisierung & Innovation.