Facebook Graph API не возвращает адрес электронной почты



Edit:не дублировать, потому что:




  • у меня есть разрешение

  • отладка маркер

  • код работает с тестовым пользователем


пожалуйста, не отмечайте как дубликат без чтения.



Я пытаюсь получить адрес электронной почты пользователя, но я его не получаю. В graph api explorer, когда я нажимаю отправить, поле электронной почты становится серым и говорит, что:




поле пусто или запрещено токен доступа




но когда я отлаживаю токен, у него есть разрешение на электронную почту



мой профиль имеет адрес электронной почты.



обновление: я пробовал https://developers.facebook.com/tools/console/ . Мой профиль ничего не возвращает, даже на другом компьютере. Но тот же код возвращает адрес электронной почты, имя и uid другой учетной записи.



код:



    <fb:login-button scope="email">
Grant Permissions to make more examples work
</fb:login-button>

<button onclick="doPost()">Post to Stream</button>

<script>
function userData() {
FB.api('/me?fields=name,email', Log.info.bind('/me callback'));
};

FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
userData();
}
});
</script>


можно заблокировать вашу электронную почту, чтобы никто не мог это? Даже когда я даю разрешение?

677   6  

6 ответов:

Маркус' ответ приводит меня к реальной проблеме, с которой я столкнулся.

отладка с помощью инструмента Facebook Explorer я смог выяснить, что я должен установите область электронной почты на FB.login() метод.

FB.login(function(response) {
    if (response.status === 'connected'){
        FB.api('/me?fields=id,email,name', function(data) {
        console.log( data.email ) // it will not be null ;)
    })
}, {scope: 'email'});

это не совсем понятно на краткое руководство руководство и я надеюсь, это поможет кому-то еще.

У меня была та же проблема, и я думаю, что узнал, почему: Если пользователь имеет неподтвержденное письмо в Facebook (т. е. Facebook отправил ему письмо с подтверждением на свой адрес электронной почты, но он не ответил) Facebook не передаст это письмо в ваше приложение, даже если он дал вам разрешения на электронную почту (!!!).

Итак, что я сделал, это использовать его электронную почту Facebook, если у него есть имя пользователя (т. е. [email protected]).

после того, как я получил свой отчет об ошибке помечен как дубликат, и я прочитал все сообщения и ссылки там, я получил то, что вызвало эту проблему для меня и как исправить.

Проблема Facebook, кажется, иногда забывает, что ваш основной адрес электронной почты находится в API graph (но он все еще есть в настройках.)

решение Пострадавший пользователь должен удалить электронную почту, сохранить настройки, затем повторно добавить адрес, повторно подтвердить, а затем сделать его основным. Это исправило мою учетную запись как в моем приложении sandbox, так и в других приложениях, где вход в Facebook не используется для работы.

у меня была такая же проблема, когда я разрабатывал кнопку входа fb для моего сайта. У меня даже были разрешения на установку для моего приложения здесь:

https://developers.facebook.com/apps/<my-app-ID>/permissions

и он работал нормально для некоторых начальных случаев, то есть он давал электронную почту (я тестировал ее на своей учетной записи, и она давала мою электронную почту). Затем внезапно он начал отражать отсутствие электронной почты вообще. После двух часов просмотра я понял, что возникла проблема с токеном доступа, как когда я пошел на это ссылка:

https://developers.facebook.com/tools/explorer/<your-fb-id>/?method=GET&path=100002451127858%3Ffields%3Did%2Cemail

обновите свой-FB-id с вашим id и перейдите по ссылке выше. Нажмите на кнопку "Получить маркер доступа". В открывшейся вкладке нажмите на кнопку "расширенные разрешения" и в этом, выберите "электронная почта" и отправить. Теперь проверьте свой запрос еще раз. Это определенно будет работать, как на консоли, так и на вашем сайте. Ура! :)

новый график facebook требует областей, добавленных в запрос /me следующим образом:

/меня?fields=email,birthday,location,locale,age_range,currency,first_name,last_name,name_format,gender&access_token=

Это известная ошибка. Если у пользователя нет адреса электронной почты, установленного в primary, запрос вернет значение null для электронной почты. Установите для своей учетной записи адрес электронной почты primary https://www.facebook.com/settings?tab=account&section=email&view а потом попробуй.

источник: https://developers.facebook.com/bugs/298946933534016/

Comments

    Ничего не найдено.