Der API-Zugriff auf die Posts einer Seite sieht in PHP eigentlich so aus:
1 2 3 4 5 6 |
$facebook = new Facebook(array( 'appId' => FB_APP_ID, 'secret' => FB_APP_SECRET, )); $posts = $facebook->api('/' . FB_PAGE_ID . '/posts'); |
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:
- Wie gibt man einen Token mit?
- 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:
1 |
$facebook->setAccessToken($new_access_token); |
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):
- Man öffne den Graph API Explorer
- Man wähle ganz oben unter “App” die App, über die man auf die API zugreifen will
- Man klicke “Zugriffsschlüssel anfordern” (“Get Access Token”)
- Man öffne den Tab “Extended Permissions”
- Man selektiere “manage_pages” und ““
- Man klicke “Get Access Token”, akzeptiere die Permissions im Popup
- der erzeugte Token gilt für 1 Stunde, was man hier überprüfen kann (einfach rein pasten)
- 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