Facebook API: Alternative Lösungen für unbegrenzt gültige Access-Tokens als Ersatz für „offline_access“

Der Scope “offline_access” ist im Dezember 2012 soszusagen abgeschafft worden. Für eine Übergangsphase haben “alte” Tokens noch eine unbegrenzte Gültigkeit. Details sind in der Facebook API Roadmap nachzulesen:

https://developers.facebook.com/roadmap/offline-access-removal/

Kurz zusammengefasst: Statt der unbegrenzt gültigen Tokens gibt es jetzt “short-lived” (1-2 Stunden) und “long-lived” (60 Tage) Tokens. Mit Hilfe eines “short-lived” Tokens kann man sehr einfach ein “long-lived” generieren (siehe “Scenario 4″), das aber nach 60 Tagen nicht zu verlängern ist – was für viele Scripte nach dem “single-user”-Konzept ein Problem darstellt. Hier werde ich mal über eine Lösung nachdenken müssen (und freue mich über Tipps und Hinweise).

Hilfreich ist vielleicht folgendes Vorgehen: Setzt man bei der App-Einstellung unter developers.facebook.com den „App Type“ auf „Native/Desktop“ (zu finden unter den „Fortgeschrittenen“ Einstellungen), dann erhält man automatisch ein „long-lived“ Token und muss dies dann immerhin nur alle 60 Tage erneuern.

Eine weitere Idee: Soweit ich das sehe verlängern sich “short-lived” Tokens bei Benutzung automatisch um einen Tag. Sorgt man also (z. B. über eine cronjob) dafür, dass das Script mind. 1x pro Tag aufgerufen wird, hat man letztendlich wieder ein unbegrenzt lang gültiges Token.

Übrigens: Für Scripte, die nur Pages verwalten wird das einfach: Hier hat Facebook eine Möglichkeit vorgesehen, unbegrenzt lange Tokens zu generieren (siehe “Scenario 5″).

Dieser Beitrag wurde unter Aktuelles, API, Facebook, Graph API, Social Networks veröffentlicht. Setze ein Lesezeichen auf den Permalink.

20 Kommentare zu Facebook API: Alternative Lösungen für unbegrenzt gültige Access-Tokens als Ersatz für „offline_access“

  1. Simon A. Frank sagt:

    Hallo Nexxo, den Scop „user_groups“ gibt es nicht mehr – wenn aber alles funktioniert kannst Du diese Fehlermeldung ignorieren.

    Schöne Grüße, Simon

    • nexxo sagt:

      Leider kann ich die Funktion innerhalb der Componente ohne die „saubere Autorisierung“ nicht aktivieren ….

  2. nexxo sagt:

    Hallo Jürgen,

    ich möchte unter Joomla 3.4.xx und EasyBlog eine Verbindung zu Facebook herstellen so das meine Blogbeiträge aus Easyblog direkt in meine Fanpage portiert werden. Jedes mal wenn ich mich dann aus der Componente mit Facebook verbinden möchte kommt folgede Fehlermeldung:

    “ … Invalid Scopes: user_groups. This message is only shown to developers. Users of your app will ignore these permissions if present. Please read the documentation for valid permissions at: https://developers.facebook.com/docs/facebook-login/permissions …..“

    Ich kann leider so garnichts damit anfangen und weiß auch nicht wo ich da wo welche Einträge machen muss, damit das funktioniert. Kannst Du mir helfen?

    Mit freundlichen Grüssen
    Nexxo, Hamburg

    • Jürgen sagt:

      hai nexxo, nein leider nicht. ich habe auch schon direkt bei Facebook nachgefragt. ich bekomme nicht mal mehr eine Antwort. Ich habe mich damit abgefunden und biete gar nicht mehr die Verbindung zu Facebook an. Dann halt nur Twitter.

      greetz

  3. Jürschen sagt:

    Es scheint dann doch nicht so einfach zu sein. Ich denke, es ist besser, sich von FB zu verabschieden. Es scheint für einfache Anwender nicht handlebar zu sein.

    Trotzdem Vielen Dank für Dein Angebot zu helfen.

    mfg

    Jürgen

    • Simon A. Frank sagt:

      Hallo Jürgen, ich hatte Deine Nachricht vom 1. Juni gar nicht erhalten und erst jetzt gelesen … ich sehe mir das gerne mal an und melde mich nochmals!

    • Jürgen sagt:

      Vielen Dank

    • Jürgen sagt:

      das ist ein fertiges chatsystem. mir scheint es auch nichts mit dem System zu tun zu haben, sondern mit irgendwelchen permissons von FB

    • Simon A. Frank sagt:

      Hallo Jürgen, leider kann ich den Fehler nicht reproduzieren bzw. vertehe nicht genau das Problem… Hast Du das Chat-System selbst programmiert oder ist das irgendeine fertige Lösung?

  4. Jürgen sagt:

    Hallo zusammen,
    ich bin am verzweifeln. Mein Englisch ist erbärmlich: seit 01.04 bekomme ich folgende Meldung

    Invalid Scopes: offline_access, xmpp_login, publish_stream. This message is only shown to developers. Users of your app will ignore these permissions if present. Please read the documentation for valid permissions at: https://developers.facebook.com/docs/facebook-login/permissions

    und weiss nicht, wo ich es einstellen kann. Screenshots auf der Hilfeseite verweisen auf Einstellungen, die ich nicht habe.

    Könnte mir bitte jemand helfen ?

    Danke

    • Simon A. Frank sagt:

      Hallo Jürgen, ich helfe gerne – was soll den Deine App düfen, welche Berechtigung brauchst Du?

    • Jürgen sagt:

      Hallo Simon, vielen vielen Dank für Deine Hilfe.
      Es geht um einen Chat, wo ich mit dem Facebook Button Freunde einladen kann.

      http://www.futzichat.de/php-fusion/123flashchat.php

      Das geht auch, wenn ich mich nicht NICHT als Developer anmelde. Irgendwie muss die Permissions angepasst werden. Ich weiß noch nicht mal, ob ich das auf der Developer Seite oder auf meiner persönlichen Seite machen muss.

      mfg
      Jürgen

  5. Marco sagt:

    So ganz verstanden habe ich das noch nicht mit den long-live / short-live Tokens.

    Ich habe mir mit dem Programm einen Token erzeugt, und kann damit per PHP Events in fb anlegen – super soweit.
    Nun soll das ganze aber laufen, ohne dass ich dabei bin, also vollautomatisch aus meinem Web-Programm heraus. Habe mich also versuchsweise von fb abgemeldet – und schwupps gilt der Token nicht mehr. Ist das richtig?

    Logge ich sofort wieder ein, dann gilt er auch nicht mehr, auch dann nicht, wenn alles innerhalb weniger Minuten passiert, also der Timeout von 1-2 Stunden kann nicht der Grund sein.

    • Simon A. Frank sagt:

      Hallo Macro, das ist merkwürdig. Der Token sollte eigentlich weiterhin funktionieren, auch wenn Du Dich ausloggst. Verwendest Du einen Token eines Users oder einer Seite?

  6. Andre sagt:

    Wie lautet denn der Code für die Prüfung des Access-Token in VB?

    Danke

    Gruß
    André

    • Simon A. Frank sagt:

      Hallo Andre, ungefähr so sieht das aus:

      GraphURL = „https://graph.facebook.com/“ _
      & „/debug_token?input_token=“ & InputToken
      & „&access_token=“ & AccessToken

  7. Michael Thielmann sagt:

    Hallo,
    besteht die Möglichkeit, den AccessToken mit Facebook zu erzeugen, wenn der Benutzername und das Passwort in PHP hinterlegt ist?

    • Simon A. Frank sagt:

      Hallo, theoretisch würde das gehen, widerspricht jedoch der Idee von OAuth und ist deshalb für die Facebook-API eigentlich nicht vorgesehen. Laut FB API Nutzungsbedingungen ist es auch nicht gestattet, fremde FB Usernamen und Passwörter zu speichern – mit dem eigenen könnte man das jedoch machen. Jedoch wäre es sehr aufwendig, man müsste mit PHP den ganzen Login-Prozess simulieren – vielleicht ist es deshalb doch einfacher, den Token zu speichern?

  8. Tim sagt:

    Hallo,

    zu erst einmal, super blog! 😉
    Klappt alles bestens, danke. 🙂

    Jedoch ist meine frage, gibt es eine möglichkeit durch php, den access token zu überprüfen ob der noch gültig ist? Damit ich weiß, bzw. der Administrator, dass er erneuert werden muss?

Kommentar verfassen