2013-01-03 21 views
10

DzwonięFacebook graph api nie zwraca email

https://graph.facebook.com/<user_id>/?access_token=<valid_token> 

czy tylko

https://graph.facebook.com/me/?access_token=<valid_token> 

i uzyskiwanie z powrotem obiekt JSON, który nie zawiera podstawową e-mail użytkownika, który muszę. Konfiguruję uprawnienia do wiadomości e-mail dla aplikacji i bez efektu. Co może być nie tak?

+1

Czy debugowania token dostępu do zweryfikowania dostał pozwolenie e-mail? –

+1

Sprawdź token dostępu pod kątem tego, czy _prawidłowo_ zawiera tutaj uprawnienie "e-mail": https://developers.facebook.com/tools/debug – CBroe

+0

Nie, nie zrobiłem tego. Jak mogę to zrobić? – heximal

Odpowiedz

7

Czy pamiętać, aby poprosić o pozwolenie email w żądaniu logowania? Można to zrobić poprzez dodanie parametru zakres tak w żądaniu logowania (& zakres = email):

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&state=SOME_ARBITRARY_BUT_UNIQUE_STRING&scope=email 

Facebook API reference

+0

Dzięki, to jest dokładnie to, o czym zapomniałem – heximal

7

Prawdopodobnie nie masz uprawnień email w tokenie dostępu.

można zweryfikować go z Acess Token Debugger

+1

Jeszcze raz dziękuję, bez urazy, ale akceptuję odpowiedź Andreasa jako poprawną przyczynę, to był prawdziwy powód. Ale twoja rada była bardzo pomocna w wyjaśnianiu źródła problemu. – heximal

+0

Nie ma problemu, zawsze powinieneś zaakceptować najlepszą odpowiedź. –

3

Uważam, że pytanie jest, nawet po udzieleniu zgody na dostęp do poczty elektronicznej, jesteś nie można uzyskać informacji e-mail za pośrednictwem Graph API. W nowszych wersjach musisz przekazać pola param do API, aby uzyskać dodatkowe informacje, takie jak e-mail. Domyślnie w odpowiedzi podaje tylko identyfikator i nazwę. Poniżej znajduje się przykładowy sposób uzyskiwania innych informacji z wykresu:

https://graph.facebook.com/me?fields=id,email,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified&access_token=<value of access_token>&debug=all 

Mam nadzieję, że to pomoże.

0

Możliwe, że adres e-mail nie został zweryfikowany na Facebooku. W takim przypadku Facebook nie udostępnia go za pośrednictwem interfejsu API. Upewnij się, że twój kod obsługuje tę sprawę.

1

Od czasu wydania wersji 2.5 API można dostać e-mail użytkownika takiego: https://graph.facebook.com/v2.5/me?fields=id,name,email

Powiązane problemy