zu bekommen 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 ein schwaches vor allem gut funktioniert, aber jetzt mit den bevorstehenden Dezember-Änderungen dieses Setup funktioniert nicht mehr:"Ein aktives Zugriffs-Token muss verwendet werden" (Dez 2012) && Die richtige Art, Facebooks PHP-SDK für Ajax-Aufrufe einzurichten, um die Benutzer-ID
config.php:
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
index.php: enthält Konfig. php und erhält die signierte Anfrage (nicht wichtig für die Frage
javascript.js: ruft die Lese-user-status.php und behandelt die Daten
lesen-user-status.php: gibt Json-Antwort enthält config.php und ruft die $ facebook -> getUser() - Funktion, um die uid
Selbst wenn aus dem Index genannt zu bekommen .php direkt nach dem Seitenladen, 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.
EDIT: Sollte das diesen Aufruf erwähnt haben:
$uid = $facebook -> getUser();
if ($uid) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook -> api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$uid = FALSE;
echo "EXCEPTION $e";
}
}
gibt out „AUSNAHME Eine aktive Zugriffstoken verwendet werden, müssen Informationen über den aktuellen Benutzer abfragen“.
Ich kenne da ziemlich viele ähnliche Fragen, aber keine der Antworten war hilfreich für mein spezielles (und wahrscheinlich auch für die neuen brechenden Änderungen) Problem.
EDIT2: Ich nehme nun an, dass es ein SDK-Bug ist (https://developers.facebook.com/bugs/238039849657148, dank CBroe). Empfehlungen für einen Workaround sind natürlich sehr willkommen.
EDIT 3 Notlösung Jedesmal, wenn Sie eine Ajax-Anfrage machen, schreiben Sie den Token Sie aus der FB.getLoginStatus oder FB.login bekommen und es heraus in der PHP-Datei lesen und über $ facebook eingestellt -> setAccessToken. Nicht unter allen Umständen geeignet (Sie müssen definitiv post verwenden), ist langsamer und bringt einige Sicherheitsprobleme, funktioniert aber immer noch.
Haben Ihre Berechtigungen Offlinezugriff? – Hemc
Klingt so, als ob Sie von dem Bug betroffen sind, den ich Anfang November gemeldet habe, https://developers.facebook.com/bugs/238039849657148 Sie haben es bestätigt und sagen, dass sie an einer Lösung arbeiten - aber da die Änderung nur ein ist In wenigen Tagen sollten sie sich ein wenig beeilen ... – CBroe
@CBroe: Danke, ich hatte das Gefühl, dass es ein Bug sein könnte, da er so ein seltsames und unregelmäßiges Verhalten zeigt, aber diese Bug-Seite nicht gefunden hat. –