BEARBEITEN: Dieser Fehler wurde protokolliert und als Facebook-Fehler bestätigt. Es wurde jetzt behoben!
Ich teste meine Updates, um auf das neue JS SDK zu wechseln. Meine App läuft über mehrere Subdomains meiner Domain. Auf dem alten JDK habe ich so etwas angerufen:
%Vor%Auf dem neuen JDK sieht es so aus:
%Vor%Mit einem Cookie-Manager-FF-Addon können Sie sehen, dass die alte Version ein Cookie auf mydomain.com setzen würde, aber das neue setzt es auf www.mydomain.com - was bedeutet, dass meine andere Subdomain nicht auf das Cookie zugreifen kann.
Zur Klarstellung: Das Problem ist, dass ich den Facebook-Cookie nicht auf verschiedenen Subdomains verwenden kann, und auch wenn ich sie in jeder Subdomain anmelde, muss ich sie auch von jeder Subdomain abmelden
Wenn Sie oauth beim Aufruf von FB.init () über die JavaScript-API auf true setzen, erhalten Sie jetzt einen fbsr_APP_ID-Cookie anstelle eines fbs_APP_ID-Cookies (beachten Sie das "r"). Es enthält eine signierte Anfrage und einen Teil der oauth-Migration.
Wenn Sie das PHP SDK verwenden, sollte es sich um die Änderung kümmern.
Die Dokumente für Websites scheinen jedoch nicht mit einer neuen Funktion get_facebook_cookie () aktualisiert zu werden: Ссылка
Es verwendet immer noch das alte Cookie-Format. Sie können hier eine signierte Anfrage analysieren:
Dann müssen Sie den Parameter "code" im Cookie über die Dokumente in ein access_token umwandeln: developers.facebook.com/docs/authentication/ (kein http: // wegen StackOverflow-Spam-Schutz)
Ich habe ein wenig in der Quelle des neuen PHP SDK geforscht, um das herauszufinden, da die gesamte Dokumentation anscheinend nicht aktualisiert wird.
Der vollständige Code, den ich benutze, ist eine Kombination aus den oben genannten und ein paar zusätzlichen Änderungen, um mit dem alten oder neuen Cookie-Format zu arbeiten. Die neue Funktion get_facebook_cookie () gibt einige zusätzliche Array-Elemente (algorithm, code, emerged_at, user_id) zurück und einige Array-Elemente sind nicht mehr gesetzt (base_domain, secret, session_key, sig). Die wichtigsten Parameter, nach denen die meisten Menschen suchen, sind höchstwahrscheinlich gesetzt (uid, access_token und abläuft)
%Vor%1) Überprüfen Sie Ihre App. Domain in Einstellungen wird als mydomain.com und nicht als www.mydomain.com eingestellt 2) Benutze channel file und url in init:
%Vor%hoffe das hilft
schau dir das an
Ссылка <appid>
/ Zusammenfassung
schau dir die App Domain an: Teil von "Basic Info:"
Wenn Sie "www.example.com" angeben, funktioniert dies nur für www.example.com. Wenn Sie "example.com" verwenden, wird es als * .example.com behandelt und funktioniert für alle Subdomains
Tags und Links javascript oauth facebook cookies