"Ein aktives Zugriffs-Token muss verwendet werden" (Dez 2012) && Die richtige Methode, Facebook-PHP-SDK für Ajax-Aufrufe einzurichten, um die Benutzer-ID zu erhalten

8

Das gibt mir ziemlich Kopfschmerzen. Ich habe eine Page-Tab-Anwendung, wo DB-Interaktion die Facebook-Benutzer-ID verwendet, um Daten zuzuordnen und zu speichern und auch um Benutzerberechtigungen zu überprüfen. Bis vor einer schwachen Zeit funktionierte alles gut, aber jetzt mit den bevorstehenden Dezember-Änderungen funktioniert dieses Setup nicht mehr:

config.php:

%Vor%

index.php: enthält config.php und erhält die signierte Anfrage (nicht wichtig für die Frage

javascript.js: ruft den read-user-status.php auf und behandelt die Daten

read-user-status.php: gibt json-response, includes config.php und ruft den $ facebook - & gt; getUser () - Funktion, um die uid

zu erhalten

Auch wenn ich direkt nach dem Laden von der index.php aufgerufen werde, bekomme ich manchmal die uid und manchmal nicht. Strangulate genug muss ich normalerweise ein wenig warten, bis ich die Seite neu lade und dann funktioniert es wieder. Aber das ist nicht immer der Fall. Das alles ist nur sehr seltsam für mich.

BEARBEITEN: Sollte erwähnt haben, dass dieser Aufruf:

%Vor%

gibt "AUSNAHME aus Ein aktives Zugriffstoken muss verwendet werden, um Informationen über den aktuellen Benutzer abzufragen."

Ich kenne da eine ganze Menge ähnlicher Fragen, aber keine der Antworten war hilfreich für mein spezielles (und wahrscheinlich auch für die neuen brechenden Änderungen) Problem.

EDIT2: Ich nehme an, dass es ein sdk-Bug ist ( Ссылка , danke zu CBroe). Empfehlungen für einen Workaround sind natürlich sehr willkommen.

EDIT 3, VORÜBERGEHENDE LÖSUNG Jedes Mal, wenn Sie eine Ajax-Anfrage machen, posten Sie das Token, das Sie vom FB.getLoginStatus oder FB.login bekommen, und lesen es in der PHP-Datei aus und stellen es über $ facebook - & gt; setAccessToken. Nicht unter allen Umständen geeignet (Sie müssen definitiv Post verwenden), ist langsamer und bringt einige Sicherheitsprobleme, funktioniert aber immer noch.

    
hugo der hungrige 29.11.2012, 22:32
quelle

5 Antworten

8

Klingt so, als ob Sie von dem Bug betroffen sind, den ich Anfang November gemeldet habe Ссылка

Sie haben es bestätigt und sagen, dass sie an einer Reparatur arbeiten - aber da die Änderung jetzt nur noch ein paar Tage entfernt ist, sollten sie sich ein wenig beeilen ...

    
CBroe 02.12.2012, 11:19
quelle
2

Ich habe das funktioniert, indem ich Folgendes getan habe ...

%Vor%

Ich habe auch meine App hinzugefügt, mit der ich Folgendes integrieren kann:

  • Website mit Facebook-Login
  • App auf Facebook
  • Seitenregister
kevin 07.12.2012 13:59
quelle
0

Versuchen Sie, indem Sie ein Zugriffstoken hinzufügen, um es anzufordern.

%Vor%     
Hemc 30.11.2012 08:42
quelle
0

Ich habe dafür einen Workaround gefunden, bis es behoben ist (was so aussieht, wird nicht pünktlich sein, bis die Änderungen stattfinden). Jedes Mal, wenn Sie eine Ajax-Anfrage machen, posten Sie das Token, das Sie vom FB.getLoginStatus oder FB.login bekommen, und lesen es in der PHP-Datei aus und stellen es über $ facebook - & gt; setAccessToken. Nicht unter allen Umständen geeignet (Sie müssen definitiv Post verwenden), ist langsamer und bringt einige Sicherheitsprobleme, funktioniert aber immer noch.

    
hugo der hungrige 01.12.2012 16:46
quelle
0

Wenn Sie Glück haben und Ihre Version von php sdk noch Sitzungsvariablen registriert, gleich nach der _graph method declaration:

%Vor%     
BIOHAZARD 13.05.2013 15:09
quelle

Tags und Links