Facebook: API-Zugriff auf altersbeschränkte Seite

Der API-Zugriff auf die Posts einer Seite sieht in PHP eigentlich so aus:

Aber: Wenn die Seite altersbeschränkt ist, dann ist der Response leer.

Man kann das umgehen, indem man einen Access Token mitgibt. Da stellen sich allerdings zwei Fragen:

  1. Wie gibt man einen Token mit?
  2. Woher bekommt man so einen Token?

Zu Frage 1 schlägt das Internet von Query-Parametern bis Request-Header alles mögliche vor, dabei ist es recht einfach:

Wichtig ist dabei offenbar, dass der übergebene Access Token zur Art des Zugriffs passt. Anders gesagt: Es gibt verschiedene Arten von Tokens, nämlich User Access-, App Access-, Page Access-, und Client Token. Wenn ich, wie oben, mittels einer App-ID auf die API zugreife, dann scheint das nur mit einem App Access Token zu funktionieren. Das ist wichtig zu wissen für die folgende Art, so einen Token zu generieren (Quelle, und hier):

  1. Man öffne den Graph API Explorer
  2. Man wähle ganz oben unter “App” die App, über die man auf die API zugreifen will
  3. Man klicke “Zugriffsschlüssel anfordern” (“Get Access Token”)
  4. Man öffne den Tab “Extended Permissions”
  5. Man selektiere “manage_pages” und “
  6. Man klicke “Get Access Token”, akzeptiere die Permissions im Popup
  7. der erzeugte Token gilt für 1 Stunde, was man hier überprüfen kann (einfach rein pasten)
  8. mit diesem “short-lived access_token” kann man einen 60 Tage gültigen Token erzeugen, indem man ihn zusammen mit der App ID und dem App Secret in diese URL einsetzt:

https://graph.facebook.com/oauth/access_token?client_id=FB_APP_ID&client_secret=FB_APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=FB_PAGE_ACCESS_TOKEN_SHORT

Leave a Reply

Your email address will not be published. Required fields are marked *

Ich erkläre mich damit einverstanden, dass alle eingegebenen Daten und meine IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA überprüft und gespeichert werden. Weitere Informationen zu Akismet und Widerrufsmöglichkeiten.