Facebook Graph API и электронная почта друга

Есть вопрос о StackOverflow о facebook и электронной почте, но после их чтения у меня все еще есть проблема с получением электронной почты пользователей.

Наше приложение реализовано на Flex и использует REST API. И ранее он использовал notifications.sendEmail. Приложение имеет разрешения publish_stream и электронной почты (проверено с помощью users.hasAppPermission).

Я попробовал users.getInfo для получения прокси-адреса. Но эта функция не возвращает адрес электронной почты друга.

Затем я выполнил следующий тест, используя Graph API и веб-браузер:

  • Открыта следующая ссылка для авторизации с расширенными разрешениями:

    https://graph.facebook.com/oauth/authorize?client_id= [APP_ID] & сфера = publish_stream, offline_access, электронная почта & redirect_uri = HTTP://www.facebook.com/connect/login_success.html

Он вернул код для получения access_token

  • Откроется следующая ссылка для получения access_token

graph.facebook.com/oauth/access_token?client_id= [APP_ID] & client_secret = [секрет] & код = [код] & redirect_uri = HTTP://www.facebook.com/connect/login_success. HTML

Он возвратил access_token. И теперь я могу использовать GraphAPI.

  • Протестировано с моей учетной записью

graph.facebook.com/me?access_token= [лексема]

Ok. Он вернул мою эмаль.

  • Протестировано с моим другом

    graph.facebook.com/[friend_id]? Access_token = [лексема]

И здесь нет поля электронной почты!

Итак, мои вопросы

Где я ошибся? Можно ли получить электронную почту друга через API Facebook (API GraphAPI или REST)?

Спасибо.

Ответ 1

Разрешения электронной почты предоставляют доступ только к вашей электронной почте.

Если вы посмотрите страницу extended permissions, она говорит:

Кроме того, чтобы защитить конфиденциальность пользователей, которые явно не разрешили ваше приложение, ваше приложение сможет получать доступ к основным данным профиля о друзьях пользователей, таких как их имена и изображения профиля. Если вашему приложению необходимо получить доступ к другим данным о друзьях пользователей, чтобы включить социальную функциональность, вам необходимо запросить некоторые специальные разрешения для друзей, перечисленные ниже.

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

Ответ 3

Я думаю, что получение электронной почты электронной почты друзей не разрешено Facebook; по крайней мере, то, что говорит мое исследование. @helloworld: Кто вам сказал, что janrain получает идентификаторы электронной почты друзей друзей?

Ответ 4

Только с расширенным разрешением вы можете указать через атрибут области при получении токена доступа

Пример:

https://graph.facebook.com/oauth/authorize?
    client_id=...&
    redirect_uri=http://www.example.com/callback&
    scope=email