График Facebook api не возвращает адрес электронной почты

Я звоню

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

или просто

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

и вернуть объект json, который не содержит основной электронной почты пользователя, который мне нужен. Я настраиваю разрешение электронной почты для приложения и не влияю. Что может быть неправильным?

Ответ 1

Не забыли ли вы запросить разрешение электронной почты в запросе на вход? Вы делаете это, добавляя параметр области, подобный этому, в запрос на вход (& scope = 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

Ссылка на API Facebook

Ответ 2

Вероятно, у вас нет разрешений email в токен доступа.

Вы можете проверить его с помощью Acess Token Debugger

Ответ 3

Я считаю, что ваш вопрос заключается в том, что даже после предоставления разрешения на доступ к электронной почте вы не можете получать электронную почту через Graph API. В более новых версиях вам необходимо передать параметры param в API, чтобы получить дополнительную информацию, такую ​​как электронная почта. По умолчанию он отвечает только за идентификатор и имя. Пожалуйста, найдите образец ниже о том, как получить другую информацию из графика:

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

Надеюсь, что это поможет.

Ответ 4

Начиная с выпуска API версии 2.5 вы можете получить электронную почту пользователя следующим образом: https://graph.facebook.com/v2.5/me?fields=id,name,email

Ответ 5

Возможно, письмо не проверено в facebook. В этом случае facebook не делает его доступным через API. Убедитесь, что ваш код обрабатывает этот случай.