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, она говорит:
Кроме того, чтобы защитить конфиденциальность пользователей, которые явно не разрешили ваше приложение, ваше приложение сможет получать доступ к основным данным профиля о друзьях пользователей, таких как их имена и изображения профиля. Если вашему приложению необходимо получить доступ к другим данным о друзьях пользователей, чтобы включить социальную функциональность, вам необходимо запросить некоторые специальные разрешения для друзей, перечисленные ниже.
И если вы посмотрите на таблицу ниже, она говорит "не доступно" для разрешения электронной почты для друзей.
Ответ 2
должно быть каким-то образом, как это делает JanRain?
http://www.janrain.com/products/engage/invite-friends
Ответ 3
Я думаю, что получение электронной почты электронной почты друзей не разрешено Facebook; по крайней мере, то, что говорит мое исследование.
@helloworld: Кто вам сказал, что janrain получает идентификаторы электронной почты друзей друзей?
Ответ 4
Только с расширенным разрешением вы можете указать через атрибут области при получении токена доступа
Пример:
https://graph.facebook.com/oauth/authorize?
client_id=...&
redirect_uri=http://www.example.com/callback&
scope=email