2010-12-30 3 views
3

Ich habe meinen Schwanz auf diesem gejagt! Und es sollte so einfach sein !!Wie man das Geburtstagsdatum von der Facebook API liest

Ich habe eine App in FaceBook, die gut funktioniert. Allerdings muss ich das Geburtsdatum des Benutzers abrufen. Ich habe erfolgreich die Anforderung für erweiterte Berechtigungen erhalten, kann aber das birthday_date nicht und in eine Variable/einen Speicher in der Datenbank abrufen.

Ich wäre sehr dankbar, wenn mir jemand den PHP-Code zeigen könnte, der die erweiterten Berechtigungen liest und die Ergebnisse in Variablen setzt.

Dank Steve

Antwort

2

Der Codeabschnitt ...

if ($facebook->getSession()) { 
$uid = $facebook->getUser();   
$fbme = $facebook->api('/me');   
} else {   
$params = array(  
'fbconnect'=>0, 
'canvas'=>1,  
'req_perms'=>'publish_stream','email','user_location','user_birthday' 
); 

Soll heißen ....

if ($facebook->getSession()) { 
$uid = $facebook->getUser();   
$fbme = $facebook->api('/me');   
} else {   
$params = array(  
'fbconnect'=>0, 
'canvas'=>1,  
'req_perms'=>'publish_stream,email,user_location,user_birthday' 
); 

(Anmerkung Änderung 'req_perms' Linie) Der Geburtstag kann dann als

gelesen werden
$birthday=$fbme['birthday']; 

Wenn jedoch der Benutzer die Geburtstagsinformationen nicht freigegeben hat, kann $ fbme ['birthday'] NULL zurückgeben.

Dieses Problem wurde durch die Codezeile verursacht, die erweiterte Berechtigungen anfordert, aber ich dachte, ich hätte die erweiterten Berechtigungen, weil ich einen Stream veröffentlichen konnte und Zugriff auf die E-Mail-Adresse hatte.

Danke auch an Joshua! Mein eigenes Geburtsdatum ist nur für Meine Freunde sichtbar und wurde nach der Korrektur der Codierung immer noch nicht angezeigt.

Facebook API - du musst es lieben !!!

3

gibt es keine birthday_date es nur Geburtstag (in der neuen api).

http://developers.facebook.com/docs/reference/api/user

aber es kann null zurück, auch wenn Sie perms haben. Sehen Sie diese (nicht wirklich) Fehler:

http://bugs.developers.facebook.net/show_bug.cgi?id=12166

Zusammenfassung davon ist (es ist nicht wirklich ein Bug): Ihre Benutzer immer noch widerrufen kann den Zugriff auf diese Daten.

+0

Das könnte erklären, warum ich nicht die Informationen bekomme, die ich brauche.Aber die gesamte Dokumentation verweist auf http://developers.facebook.com/docs/authentication/permissions, die birthday_date, freunde_birthday und user_birthday erwähnt - keine Erwähnung von Geburtstag (allein). ABER ich kann nicht einmal die Information von meinem Benutzerkonto bekommen, also ist mein PHP eindeutig falsch! – Steve

+0

Außerdem gab es einen Fehler mit ihren Dokumenten. Ich habe einen Fehlerbericht eingereicht und sie haben ihn behoben. Wenn Sie sich die Berechtigungsdokumentation jetzt ansehen, korrigieren sie –

0

dies in Linux arbeitet

NOW = $ (Datum + "% m /% d")

curl „https://api.facebook.com/method/fql.query?access_token= [ACCESS_TOKEN] & query = SELECT% 20Erster_name, uid% 20von% 20user% 20where% 20uid% 20in% 20 (SELECT% 20uid2% 20von% 20friend% 20where% 20uid1 = [YourFaceID]) AND% 20Substr (birthday_date, 0,5) % 20 ==% 20 '$ NOW' "

1

Das war praktisch, aber wenn Sie sich fragen, warum es nicht funktioniert, wo es sein sollte, entfernen Sie die App von Ihrer persönlichen Seite und autorisieren Sie die App erneut.

"Konto-> Datenschutzeinstellungen -> 'Apps und Websites' -> Bearbeiten Sie Ihre Einstellungen" entfernen Sie Ihre App aus der Liste.

Verwandte Themen