Wie erhalte ich ein langlebiges Facebook Access Token?

8

Hauptziel: Wie kann ich ein Zugangstoken mit unbegrenzter Gültigkeit für eine Facebook-App erhalten?

Hintergrundinformationen

Wir haben eine FB-App namens MyApp mit folgendem Aufbau:

  • MyApp ist berechtigt, mit unserer Facebook App
  • zu interagieren
  • MyApp hat Zugriffsrechte zum Verwalten unserer Seiten (manage_pages)
  • MyApp hat Zugriff auf Insights (read_insights)

Unser Ziel ist es, die Insights-Daten automatisch zu extrahieren, z. einmal in der Nacht.

Versuch mit einem oApp generierten App-Token

  1. Erhalte APP_ACCESS_TOKEN, die zu MyAPP gehören

    graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials

    Beispiel eines eingezogenen Tokens: 328467452729456598 | Wn2Gt69Ofg5ySdOGa3TsP2p4R

  2. Verwenden Sie APP_ACCESS_TOKEN, um PAGE_ACCESS_TOKEN für jede Seite zu erhalten graph.facebook.com/me/accounts?access_token=APP_ACCESS_TOKEN

  3. Verwenden Sie PAGE_ACCESS_TOKEN, um die Insights-Daten der Seite abzurufen: graph.facebook.com/YOUR_APP_ID/insights?access_token=PAGE_ACCESS_TOKEN

Mein Problem ist, dass die APP_ACCESS_TOKEN, die ich von Schritt 1 bekomme, den Benutzerteil des Tokens zu vermissen scheint, was zu dem folgenden Fehler führt, wenn ich Schritt 2 ausführe:

%Vor%

Versuch mit Token, die aus dem Graph-Explorer-API-Token abgerufen wurden

Wenn ich den APP_ACCESS_TOKEN benutze, der durch den Graph API Explorer (https://developers.facebook.com/tools/explorer) gewonnen wurde, erhalte ich einen Token mit dem Benutzerteil, der wesentlich länger ist. Wenn ich dieses Token in Schritt 2 und 3 verwende, erhalte ich korrekte Daten, aber alle Token sind nur für 2 Stunden gültig und können anschließend nicht für den automatischen Abruf von Erkenntnisdaten verwendet werden.

Versuch, kurzlebige Token gegen langlebige Token auszutauschen

Nach den Schritten in diesem Leitfaden: Ссылка habe ich versucht, einen kurzen Text auszutauschen lebte Token für einen längerlebigen.

Wenn ich versuche, das vom oauth-Prozess erhaltene Token auszutauschen, bekomme ich den Fehler:

%Vor%

Wenn ich das Token verwende, das man manuell vom Graph-Explorer in der Exchange-Methode erhält, kann ich auch die anderen Schritte ausführen, aber für wie lange hält dieses neue Token? Wenn das Token nach x Tagen oder nach irgendeinem anderen Ereignis abläuft, würde ich immer noch mit dem Problem konfrontiert sein, das initiale Token programmatisch zu erhalten (im Gegensatz zu manuell alle aus dem Graph-Explorer).

Weiß jemand also, wie ich einen langlebigen, automatisch abgerufenen Token bekommen kann, um das zu lösen?

Danke!

    
user1597852 28.08.2012, 15:03
quelle

2 Antworten

2

Dieses Shell-Skript versucht, Zugriffstokens zu generieren:

Ссылка

    
Dave Cohen 20.12.2012 20:14
quelle
-1

In Schritt 2 müssen Sie die access_token des Benutzers verwenden, um auf den Endpunkt /accounts API zuzugreifen. Sie können das App Access Token hier nicht verwenden.

Was Sie tun sollten, ist:

  1. Holen Sie sich das Zugriffstoken des Benutzers von Facebook
  2. Tauschen Sie den access_token gegen ein langlebiges Token
  3. aus
  4. Rufen Sie /accounts auf, um ein Long-Live-Seitenzugriffstoken zu erhalten
  5. Zugriff auf Seiteneinblicke mithilfe des langlebigen Tokens, bis es abläuft
  6. Wiederholen Sie die Schritte 1-4.
Niraj Shah 28.08.2012 15:46
quelle

Tags und Links