FAQ German - strohne/Facepager GitHub Wiki

  1. Allgemeines
  2. Facebook
  3. Twitter

Allgemeines

Q: Auf welchen Betriebssystemen kann Facepager laufen?

A: Facepager kann sowohl auf Mac und Windows-Geräten verwendet werden. Es existiert noch keine installationsbereite Linux-Version, jedoch findest du unter https://github.com/strohne/Facepager/tree/master/src eine Anleitung, um Facepager auch unter Linux nutzen zu können.

Q: Muss ich bei Facebook oder anderen Plattformen registriert sein, damit ich Facepager nutzen kann?

A: Ja, bei Facebook, Twitter und YouTube musst du ein Benutzerkonto besitzen. Du loggst dich über Facepager auf den entsprechenden Seiten ein. Facepager selbst erhält dabei keine Daten von dir. Anschließend bekommst du ein Access Token zugeordnet, das dir den Zugang zu Facebook, Twitter und YouTube so lange ermöglicht, bis du es selbst löschst oder ein Häkchen bei Clear settings when closing setzt. Dieses Verfahren nennt sich Open Authorization. Greifst du hingegen auf andere Seiten, wie z. B. Wikipedia über den Generic-Tab im Query Setup, zu, ist eine Anmeldung nicht nötig.

Q: Was ist ein Access Token?

A: Ein Access Token ist der Anmeldeschlüssel (ein generiertes Passwort), den du vom Betreiber einer API erhältst, also zum Beispiel wenn du dich über Facepager bei Facebook, Twitter oder YouTube einloggst. Im Query Setup wird dein Access Token verschlüsselt dargestellt, in der Status View hingegen ist es sichtbar. Um einen Missbrauch deines Access Token zu verhindern, solltest du es unbedingt in deinen Screenshots oder Status-View-Meldungen schwärzen, wenn du um Hilfe bittest (per Mail oder in der Facebookgruppe). Wenn du an frei zugänglichen Computern arbeitest, solltest du dein Access Token vor dem Schließen des Programms löschen oder ein Häkchen bei Clear settings when closing setzen. Denn der Zugang über das Access Token bleibt solange bestehen, bis du es selbst löschst.

Q: Wozu ist das Feld "Client Id" da?

A: Es gibt zwei verschiedene Wege, über Facepager Zugang zu den Plattformen Facebook, Twitter und YouTube zu bekommen. Zum einen kann man sich mit Facepager bei den Plattformen einloggen und erhält einen Access Token. Zum anderen ist es aber auch möglich seine eigene Anwendung bei diesen Plattformen zu registrieren, die dir mehr Kontrolle gibt. Du kannst die Anwendung beispielsweise zur Überprüfung/Review einreichen, um Zugriff auf eingeschränkte Bereiche einer API zu erhalten. In beiden Fällen ist Facepager ein zwischengeschaltetes Programm zwischen einer registrierten Anwendung und der API. Die Registrierung (in beiden Fällen) ist notwendig, da der Provider wissen möchte, dass Facepager die Zugriffsberechtigung für die angefragten Daten hat. Wenn du deine eigene Anwendung registrierst, erhältst du einige Kennungen wie eine "Client-ID", die du dann in das Abfrage-Setup eingeben kannst. Abhängig von der API werden verschiedene Daten verwendet:

Facebook: Client Id
YouTube: Client Id, Client Secret
Twitter: Consumer Key und Consumer Secret

Wenn Du eine eigene App registrieren willst, dann schau Dir die Hinweise in der Datei https://github.com/strohne/Facepager/blob/master/src/credentials.py.readme an.

Q: Was kann ich mit dem "Scope field" machen?

A: Das "Scope field" legt fest, welcher Berechtigungstyp bei der Anmeldung angefordert wird. Manchmal benötigst du bestimmte Berechtigungen, z. B. um auf geschützte Daten zuzugreifen. Weitere Informationen findest du in der Dokumentation der jeweiligen API.

Q: Ist es möglich, das Extrahieren der Daten zeitlich zu automatisieren?

A: Neben dem Fetch Button findet sich eine Timerfunktion, die dies ermöglicht.

Q: Ich möchte Informationen über Personen herunterladen. Wieso bekomme ich bei einigen Personen mehr Informationen als bei anderen?

A: Du kannst nur genauso so viele Daten von anderen herunterladen, wie dir als Nutzer von Facebook, Twitter oder YouTube ersichtlich ist. Facepager gibt dir keine erweiterten Berechtigungen, welche die Privatsphäre-Einstellungen anderer Nutzer umgehen.

Q: Welche Ratenbegrenzungen gelten bei Facebook, Twitter und YouTube?

A: Es gibt Ratenbegrenzungen, um den Traffic vom Datenextrahieren besser zu kontrollieren und eine Überlastung des Datennetzes zu verhindern. Diese unterscheiden sich aber zwischen den APIs. Daher siehe hier in die Dokumentation:

Facebook: https://developers.facebook.com/docs/graph-api/advanced/rate-limiting
Twitter: https://developer.twitter.com/en/docs/basics/rate-limiting und https://developer.twitter.com/en/docs/basics/rate-limits
YouTube: https://developers.google.com/youtube/v3/getting-started

Q: Ist es möglich eine Abfrage seitenweise (paginated query) durchzuführen?

A: Ja, ist es. Verändere dafür die Höhe des Limit Parameter und erhöhe außerdem die Anzahl der Maximum pages. Allerdings ist es hier wieder von der genutzten API abhängig, wie hoch du den Limit Parameter pro Seite setzen kannst. Z. B. beim Extrahieren von Posts einer Facebook-Seite ist das derzeitige Limit bei 100. Schaue daher immer auch in die Dokumentation der genutzten API, um nachzulesen, was möglich ist.

Q: Ist es möglich, den Download Prozess für Daten zu beschleunigen, wenn eine Menge an Daten heruntergeladen werden?

A: Ja, das ist möglich, indem die Parallel Threads und die Requests per minute im Query Setup erhöht werden. Doch beachte, dass die Anfragen an eine API begrenzt sind.

Q: Welche Export-Einstellungen soll ich wählen?

A: Beim Exportieren der Daten hast du einige Möglichkeiten, die entstehende CSV-Datei bereits vorher nach deinen Vorstellungen zu gestalten. So kannst du hier bspw. festlegen, mit welchem Symbol die einzelnen Spalten voneinander getrennt dargestellt werden sollen. Oder ob du nur ausgewählte Nodes exportieren möchtest oder alle vorhandenen. Das Feld Use a BOM ist in den Grundeinstellungen immer angekreuzt: BOM bedeutet „Byte Order Mark“ und ist ein Erkennungszeichen für die verwendete Zeichenkodierung im UTF-Format. Hier können Datenlängen in zwei Byte dargestellt werden, wobei es verschiedene Möglichkeiten gibt, in welcher Reihenfolge diese angezeigt werden. In diesem Fall wird es durch ein BOM gekennzeichnet. Nicht jede CSV-Datei enthält ein BOM. Genauso kannst du zusätzlich deine Daten in einem Wide-Format exportieren. Dann werden die einzelnen Nodes-Ebenen nicht untereinander dargestellt, sondern nebeneinander. Statt die Daten zu exportieren, ist es auch möglich, die SQLite-Datenbank mit anderen Programmen, z. B. dem SQLiteBrowser oder R, zu öffnen.

Q: Bisherige Settings, Parameter oder Presets funktionieren nicht mehr wie bisher. Woran liegt das?

A: Entweder hat sich die jeweilige API der genutzten Seite verändert oder du verwendest eine veraltete Version von Facepager. Schaue in die Dokumentation der API. Hier findest du immer die aktuellste Version von Facepager: https://github.com/strohne/Facepager/releases

Q: Ich erhalte Fehlermeldungen. Wie finde ich heraus, was diese bedeuten?

A: Die meisten Fehlermeldungen sind gängige HTTP Status Codes und keine spezifischen Facepager-Fehler. Diese sind nicht nur in der Status View sichtbar, sondern auch ausführlicher in der Data View zu sehen. Klicke dafür auf den entsprechenden Node. Hier siehst Du die Erklärung, die der Anbieter der Plattform mitgeschickt hat. Falls diese nicht komplett lesbar ist, kopiere die Zeile einfach in ein gängiges Text-Programm. Neben den allgemeinen Codes (siehe z. B. https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) helfen auch die Dokumentationen der Provider, um Fehlermeldungen zu verstehen:

Facebook: https://developers.facebook.com/docs/
Twitter: https://developer.twitter.com/en/docs
YouTube: https://developers.google.com/youtube/v3/

Q: Warum ist das Löschen so langsam?

A: Der Fokus von Facepager liegt auf der Erhebung und nicht auf dem Löschen von Daten. ;) Im Zweifelsfall: Lösche die komplette Datenbank über deinen Windows Explorer oder bearbete die SQLite-Datenbank mit anderen Programmen (z. B. SQLiteBrowser).

Q: Gibt es noch andere Hilfsmittel für Facepager als diese FAQ?

A: Ja! Klick dich einfach ein wenig durch die Artikel dieses Wikis , um mehr über das Programm zu lernen.

In der Facebookgruppe findest du eine Zusammenstellung verschiedener Anleitungen , welche im Laufe der Zeit entstanden sind. Außerdem ist die Gruppe der erste Anlaufpunkt für Fragen in jeglicher Hinsicht.

Sollten hingegen Fehler auftauchen, welche darauf hinweisen, dass das Programm irgendwelche Bugs besitzt, melde diese bitte bei den GitHub Issuses.

Am wichtigsten sind aber die Dokumentationen der APIs. Dort ist ersichtlich, welche Datenabfragen möglich sind. Außerdem ändern sich APIs immer wieder. Wenn etwas nicht funktioniert, solltest Du auf jeden Fall dort nachsehen. Siehe dazu:

Facebook: https://developers.facebook.com/docs/
Twitter: https://developer.twitter.com/en/docs
YouTube: https://developers.google.com/youtube/v3/

Facebook

Q: Ist es möglich, Daten über Gruppenmitglieder aus privaten Gruppen zu extrahieren?

A: Nein, ist es nicht. Es ist generell nicht mehr möglich Daten über Gruppenmitglieder zu erhalten, egal ob private oder offene Gruppe. Siehe hier: https://developers.facebook.com/docs/graph-api/reference/v2.12/group/members

Q: Kann ich auch E-Mailadressen von Nutzern herunterladen?

A: Nein, das lässt die API nicht zu.

Q: Ist es möglich, Daten aus Facebook über Suchbegriffe zu extrahieren?

A: Leider nein, da es die Facebook Graph API nicht zulässt. Stattdessen kannst du z. B. Posts mit Facepager herunterladen, exportieren und anschließend innerhalb der CSV-Datei nach Suchbegriffen filtern. Siehe auch hier: https://developers.facebook.com/docs/graph-api/reference

Q: Ist es möglich, alle Posts und Kommentare innerhalb einer Seite oder Gruppe zu extrahieren?

A: Das kommt auf den Einzelfall an. Die API lässt das Extrahieren von sehr alten Posts und Kommentaren nicht wirklich zu. Außerdem kann es sehr lange dauern, wenn umfangreiche Daten heruntergeladen werden. Denn Facebook begrenzt die Geschwindigkeit, mit der man Daten abfragen kann. Es gibt außerdem in Facepager keine Möglichkeit, die maximale Seitenzahl auf unendlich zu setzen. Dies ist in der Regel weder notwendig noch sinnvoll.

Q: Kann man neben den Likes auch die Reaktionen auf einen Facebook-Posts oder Kommentar extrahieren?

A: Ja. Siehe hierfür: https://developers.facebook.com/.../v2.11/object/reactions. Wichtig ist dabei, dass das Resource Feld entsprechend angepasst wird: <Object Id>/reactions. Wenn eine Übersicht der gesamten Anzahl der jeweiligen Reaktionen erwünscht ist, musst du einen summary Parameter hinzufügen und auf total_count setzen.

Q: Kann man das Datum der Likes oder der Reaktionen extrahieren?

A: Leider nein, da es die API nicht zulässt.

Q: Beim Extrahieren von Kommentaren werden Emoticons nicht richtig angezeigt. Woran liegt das?

A: Da nicht alle Webseiten und Geräte dieselben Zeichencodes für Emoticons verwenden, werden diese beim Extrahieren eventuell nicht richtig dargestellt. Folgende Links können dabei helfen, die Darstellung der Emoticons zu verstehen: https://stackoverflow.com/questions/41541138/translation-and-mapping-of-emoticons-encoded-as-utf-8-code-in-text und https://github.com/today-is-a-good-day/emojis

Twitter:

Q: Wieso funktioniert das Extrahieren von Daten bei Twitter anders als bei Facebook, trotz gleicher Parameter?

A: Das liegt an den Unterschieden der API von Twitter im Vergleich zu Facebook. Diese lässt nicht die zwingend die gleichen Abfragen zu. Beachte außerdem, dass es neben der kostenlosen API auch kostenpflichtige APIs mit mehr Möglichkeiten gibt. Siehe dazu: https://developer.twitter.com/en/docs

Q: Ist es möglich, Tweets mit Facepager abzufragen, welche älter als sieben Tage sind?

A: Ältere Tweets zu erhalten gelingt nur über Umwege oder gegen Geld. Es gibt hierbei verschiedene Möglichkeiten.

  1. Du kannst es mit der kostenlosen Version der Premium Search API versuchen. Dazu müsstest du eine eigene App auf Twitter registrieren und kannst dann Consumer Key und Secret in Facepager eintragen. Siehe dafür folgende Seite: https://developer.twitter.com/en/docs/tweets/search/overview/premium
  2. Du kannst außerdem versuchen statt der Search API die Timelines von Nutzern abzurufen. Allerdings ist das auch begrenzt und zwar auf die letzten 3200 Tweets eines Nutzers. Siehe https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user_timeline.html
  3. Du recherchierst z.B. über die Webseite von Twitter oder über einen Webscraper die Tweet IDs und rufst dann mit Facepager die Inhalte der Tweets ab. Siehe https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-show-id
  4. Du benutzt die kostenpflichtigen APIs von Twitter bzw. Dienste wie GNIP. Facepager kann dir dann dabei helfen, die Daten herunterzuladen.
⚠️ **GitHub.com Fallback** ⚠️