Die Facebook Query Language ist ein ewiger Quell der Freude und von daher gibt es diesmal wieder einen Artikel zu diesem Thema. Als Oberthema habe ich heute den Seitenfeed ausgewählt und die Posts, die man über diesen Feed abrufen kann. Im Kapitel 1 habe ich schon gezeigt, wie man möglichst viele Posts erhält. Heute werden schauen wir, dass wir einen möglichst vollständigen Feed erhalten und natürlich auch die Posts etwas filtern. Es gibt eine ganze Menge spezieller Posts, die man normalerweise nicht per FQL direkt bekommt.
Hidden Post
Wenn man in der Timeline einen Post versteckt, dann ist er auf der Facebook Seite nicht mehr sichtbar. Diese werden im Stream auch nicht mehr gelistet. Wenn man diese dennoch abrufen möchte, dann kann man folgendes FQL verwenden.
select post_id from stream where source_id='<page_id>' and is_hidden=1 and timeline_visibility='hidden'
Posts mit dem Wert is_hidden=1
werden im Stream nicht gelistet. Man kann nun die Kombination von is_hidden=0 and is_hidden=1
setzen und so alle Posts abrufen.
Spam Post
Spam Posts sind auch is_hidden
-Posts. Diese haben den timeline_visibility
Wert auf spam gesetzt. Möchte man die Spam-Posts erhalten, so geht man genau wie bei den Hidden Posts vor.
select post_id from stream where source_id='<page_id>' and is_hidden=1 and timeline_visibility='spam'
Scheduled Post
Die Scheduled Posts werden nicht von vorne herein veröffentlicht. Sie werden erst zu einem gewissen Termin veröffentlicht, den der Benutzer festlegt. Diese Posts werden auch nicht im normalen Stream abgerufen – es sei denn sie wurden veröffentlicht. Aber auch hier kann man mit einem FQL-Trick an den Post kommen. Man muss zusätzlich das Attribut is_published
mit dem Wert 0
explizit abfragen, zum Beispiel so:
select post_id, scheduled_publish_time from stream where source_id='<page_id>' and is_published=0 and scheduled_publish_time
Dark Post
Die Dark Posts werden auch Ghost Posts genannt und haben genau wie die Scheduled Posts das Attribut is_published
auf 0
gesetzt. Der Unterschied ist hier aber, dass keine scheduled_publish_time
gesetzt ist. Somit erscheint ein solcher Post nicht im Stream und kann nur durch einen absoluten Link erreicht werden. Die Dark Posts werden vor allem für Werbekampagnen verwendet und können über den Ads-Manager (genauer PowerEditor) erzeugt werden. Eine Erstellung per API ist natürlich auch möglich. Die Abfrage ist wie bei den Scheduled Posts und die scheduled_publish_time
ist hier immer ‚null
‚:
select post_id, scheduled_publish_time from stream where source_id='<page_id>' and is_published=0 and not(scheduled_publish_time)