Facebook Email field return null (nawet jeśli uprawnienie "email" jest ustawione i zaakceptowane)
Dla niektórych użytkowników w naszej aplikacji, pole e-mail zwraca NULL, nawet jeśli użytkownik przyznał dostęp E-mail do aplikacji. Kiedy sprawdzamy parametr scope i ważność Tokena użytkownika dzięki narzędziu Debugger, wszystko jest ok. E-mail z uprawnieniami został zaakceptowany. Ale kiedy pytamy API Graph o adres e-mail użytkownika z prawidłowym tokenem użytkownika, nie pojawia się on w ogóle.
Czy istnieje sposób, aby użytkownik mógł uniemożliwić aplikacji otrzymanie jego e-maila, nawet jeśli przyznał pozwolenie na e-mail?
Thanks
13 answers
Miałem ten sam problem i chyba dowiedziałem się dlaczego: Facebook wysłał facebook facebook e-mail z potwierdzeniem na adres e-mail użytkownika, ale nie odpowiedział) Facebook nie przekaże tego e-maila do Twojej aplikacji, nawet jeśli dał ci uprawnienia e-mailowe.w przypadku, gdy użytkownik ma niepotwierdzony e-mail na Facebooku (np. Facebook wysłał mu e-mail z potwierdzeniem na adres e-mail użytkownika, ale nie odpowiedział) Facebook nie przekaże tego e-maila do Twojej aplikacji, nawet jeśli dał ci uprawnienia e-mailowe.
Więc to co zrobiłem to użycie jego lub jej Facebook email jeśli użytkownik ma nazwę użytkownika (tj. [email protected]).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 14:37:29
Mam ten sam problem. To działa dobrze na moim localhost, używam PHP SDK do logowania facebook i kiedy złożyć moją prośbę to zwrot wszystkich pól, takich jak e-mail, nazwa itp użytkownika, ale na serwerze jakoś to nie jest working.It nie zwróci wiadomości e-mail użytkownika. Zrobiłem wiele badań i rozwoju na ten temat i mam rozwiązanie tego problemu. :)
$profile = $facebook->api('/me?fields=email,first_name,last_name');
Jeśli używasz PHP-sdk po prostu przechodzi pola takie jak to zwraca email, first_name itp. Mam nadzieję, że wam się uda. dzięki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-30 07:51:30
Facebook nie wysyła wiadomości e-mail, jeśli użytkownik zalogował się przy użyciu swojego numeru telefonu. Zobacz komentarze do https://github.com/mkdynamic/omniauth-facebook/issues/61 aby uzyskać więcej informacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-30 14:28:48
Musisz dać uprawnienia e-mail wraz z przyciskiem auth.
authButton.setReadPermissions(Arrays.asList("email"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-11 06:12:21
Wszystko, co musisz wiedzieć:
1) Link 1
Niektóre możliwe przyczyny:
Brak adresu e-mail na koncie
Brak potwierdzonego adresu e-mail na koncie
Brak zweryfikowanego adresu e-mail na koncie
Użytkownik wprowadził punkt kontroli bezpieczeństwa, który wymagał od niego ponownego potwierdzenia adresu e-mail i jeszcze tego nie zrobił
Adres e-mail użytkownika jest nieosiągalny
Potrzebujesz również "e-mail" rozszerzone uprawnienia, nawet dla użytkowników, którzy mają poprawny, potwierdzony, dostępny adres e-mail w pliku.
2) Link 2
Uwaga, nawet jeśli poprosisz o pozwolenie na e-mail, nie jest to gwarantowane otrzymasz adres e-mail. Na przykład, jeśli ktoś zapisał się na Facebook z numerem telefonu zamiast adresu e-mail, e-mail pole może być puste.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-07 19:59:24
W niektórych przypadkach Facebook może nie mieć poprawnego adresu e-mail dla użytkownika:
Email: string zawierający poprawny adres e-mail RFC822-Uwaga: Ten pole może być null, jeśli nie ma adresu e-mail dla użytkownika
Zobacz https://developers.facebook.com/docs/reference/api/user/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-08 21:30:37
Facebook dostarczy Ci identyfikator e-mail użytkownika, jeśli tylko ten użytkownik ma potwierdzony identyfikator e-mail powiązany ze swoim kontem. Jeśli aplikacja może pobrać identyfikator e-mail dla niektórych użytkowników, problem może nie być związany z deweloperem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-09 13:13:29
@ ozba rozwiązanie nie ma zastosowania, ponieważ facebook wyświetla teraz komunikat alertu, gdy użytkownik ma niepotwierdzony adres e-mail. Tak więc, jeśli masz ten problem, bardziej podoba się to, że użytkownik zarejestrował się za pomocą numeru telefonu.
Niektóre możliwe przyczyny:
- Brak adresu e-mail na koncie (tylko numer telefonu)
- Brak potwierdzonego adresu e-mail na koncie
- użytkownik wprowadził punkt kontroli bezpieczeństwa, który wymagał od niego ponownego potwierdzenia adresu e-mail i nie jednak zrobione tak adres e-mail użytkowników jest nieosiągalny.
Sprawdź: https://developers.facebook.com/bugs/298946933534016
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 09:39:59
Według dokumentacji:
Uwaga, nawet jeśli poprosisz o pozwolenie na e-mail, nie jest gwarantowane, że otrzymasz adres e-mail. Na przykład, jeśli ktoś zarejestrował się w serwisie Facebook z numerem telefonu zamiast adresu e-mail, Pole e-mail może być puste.
To by wyjaśniało, dlaczego niektórzy użytkownicy mają null
E-mail!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-13 04:38:38
Możesz spróbować to zadziała String email = user.getProperty("email").toString(); String safeEmail = user.asMap ().get("email").toString ();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-24 13:14:48
Potrzebujesz jeszcze jednego pozwolenia od facebook ' a.
Dołącz (about_me) uprawnienia do Ustawienia facebook dev, a także w aplikacji lub kodzie..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-02 12:25:24
Czytałem poprzednie odpowiedzi, ale chociaż niektóre z nich są prawdziwe, jak jeśli użytkownik nie ma potwierdzonego e-maila, ale numer telefonu komórkowego, wiele razy ten błąd zdarza się ignorując, jak zażądać informacji za pomocą wykresu API FB. Załóżmy, że twój login został pomyślnie wykonany, a teraz masz token dostępu i identyfikator użytkownika, ale nadal nie możesz zobaczyć poczty e-mail i innych pól, które Cię interesują. Skorzystaj z tego żądania po potwierdzeniu statusu logowania jako połączone:
FB.api(
'/me',
'GET',
{"fields":"id,name,birthday,email,about,cover"},
function(response) {
// Insert your code here
}
);
Zależy od uprawnienia, o które prosiłeś, teraz będziesz mógł uzyskać dalsze informacje zgodnie z Twoimi potrzebami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-01 17:21:48
$loginUrl = $facebook->getLoginUrl(
array(
'req_perms' => 'email'
)
);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-08 17:27:10