Facebook Graph API и электронная почта друга - PullRequest
11 голосов
/ 08 октября 2010

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

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

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

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

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

    https://graph.facebook.com/oauth/authorize?client_id=[app_id]&scope=publish_stream,offline_access,email&redirect_uri=http://www.facebook.com/connect/login_success.html

Возвращен код для получения access_token

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

graph.facebook.com / oauth / access_token? Client_id = [app_id] & client_secret = [secret] & code = [code] & redirect_uri = http://www.facebook.com/connect/login_success.html

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

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

graph.facebook.com / me? Access_token = [token]

Хорошо.Он вернул мой emal.

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

    graph.facebook.com / [friend_id]? Access_token = [token]

И вотнет поля электронной почты!

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

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

Спасибо.

Ответы [ 4 ]

28 голосов
/ 08 октября 2010

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

Если вы посмотрите на страницу с расширенными разрешениями , там будет написано:

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

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

0 голосов
/ 21 июня 2013

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

0 голосов
/ 11 июля 2011

должен быть какой-то другой способ, как JanRain это делает? http://www.janrain.com/products/engage/invite-friends

0 голосов
/ 08 октября 2010

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

Пример:

https://graph.facebook.com/oauth/authorize?
    client_id=...&
    redirect_uri=http://www.example.com/callback&
    scope=email
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...