======Facebookposts einer Seite auf der eigenen Homepage anzeigen======
Grundlegend funktionert die Facebook-Graph-API so, dass man zuerst ein Access-Token anfragen muss. Mit diesem Token kann man dann die Posts anfragen, wenn das Token gültig ist, bekommt man einen JSON-String zurück, welchen man z.B. mit PHP auswerten kann.
=====Facebook-APP=====
Damit man aber übehaupt ein Token anfragen kann, braucht man erstmal eine **APP-ID**, sowie einen **APP-Schlüssel** (auch "APP-Secret").
Um diese beiden Teile zu kriegen, muss man sich unter [[https://developers.facebook.com/|developers.facebook.com]] einloggen und als Entwickler registrieren. Danach sollte man unter [[https://developers.facebook.com/setup|developers.facebook.com/setup]] eine neue APP anlegen können.
Die APP-ID sowie das APP-Secret lassen sich daraufhin unter [[https://developers.facebook.com/apps/|developers.facebook.com/apps/]] abrufen.
=====Token=====
Jetzt haben wir also unsere APP-ID und den dazugehörigen Schlüssel. Damit machen wir eine Anfrage an https://graph.facebook.com/oauth/access_token?client_id=[APP-ID]&client_secret=[APP-Secret]&grant_type=client_credentials ([APP-ID] und [APP-Secret] werden natürlich durch die APP-ID bzw das Secret ersetzt)
Mit PHP geht das folgendermaßen:
Wir bekommen, wenn alles geklappt hat, unser Token in Reintextform.
=====Posts holen=====
Jetzt, da wir unser Token haben, können wir die Posts holen. Dazu müssen wir eine Anfrage an https://graph.facebook.com/v2.5/[Seiten-ID]/feed?[TOKEN] machen, welche uns ein JSON-String zurückliefert, welches wir dann schließlich mit z.B. PHP auswerten können.
Aber der Reihe nach. Die Posts holen wir mit PHP folgendermaßen:
Jetzt haben wir die Posts, in JSON kodiert. Damit PHP das versteht, müssen wir sie erstmal umwandeln:
Der letzte Pararmeter von json_decode sorgt dafür, dass wir ein Array bekommen, und keine Std-Klassen.
Dieses Array können wir mit einer foreach-Schleife durchlaufen und die Posts ausgeben:
';//Man kann mit dieser ID auf den dazugehörigen Post verlinken, dazu muss man sie nur den hinteren teil (mit explode('_', $post['id']) in folgende URL einbauen: https://www.facebook.com/returnkorbach/posts/[Besagte Post-ID]
echo 'Post-Nachricht: '.$post['message'].'
';//Der eigentliche Post als Text
if(isset($post['story'])) echo 'Story: '.$post['story'].'
';//Wenn es Statusupdates (?) gab, existiert dieses Element, es empfielt sich also, vorher zu überprüfen, ob das Element existiert, um fehlermeldungen zu vermeiden
echo 'Datum: '.$post['created_time'];//Das Datum des Posts, allerdings nicht als Unix-Timestamp
}
?>
=====Bilder=====
Manche Posts enthalten Bilder. Sollen diese Bilder ebenso angezeigt werden, muss man zunächst überprüfen, ob der Post überhaupt ein Bild enthält. Das geht so:
';//Die Url könnte man in ein -Tag packen und anzeigen
}
?>
Wir holen also mehr Infos über den post, dekodieren das JSON und wenn ein Bild im Post drin ist,basteln wir uns die Bild-URL.
=====# auswerten=====
Wenn wir z.B. Facebook-Posts anzeigen, kommen dort manchmal sogenannte Hashtags (#) vor. Wenn wir mit einem Klick darauf eine Suche auf Facebook nach diesem Hashtag zu suchen. Andere Einsatzzwecke sind natürlich auch denkbar.
In PHP brauchen wir dafür einen Regulären Ausdruck:
$0', $str);
return $str;
}
?>
Der Ausdruck macht nichts anderes, als jeden Text, der nach einem # folgt, bis zum nächsten Leerzeichen, mit einem Link auf https://www.facebook.com/hashtag/[gefundener Hashtag ohne #] zu versehen
=====cURL=====
Wenn auf dem System, auf welchem das PHP-Script laufen soll, keine Anfragen via file_get_contents an externe Ziele erlaubt, muss man (falls installiert) [[https://curl.haxx.se/|cURL]] verwenden. Mit PHP geht das wie folgt um z.B. das Token zu holen: