如何从Facebook Graph Api获取用户电子邮件?

时间:2011-09-29 10:45:32

标签: c# .net facebook email facebook-graph-api

我在这里很困惑,

我正在尝试使用Facebook Api获取用户数据,我正在使用scope=email请求电子邮件权限,如下所示:

https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=MY_URI&scope=email

在Facebook访问确认窗口中,我看到我的应用程序请求访问该电子邮件,但即使在此之后,当我请求Graph Api时,它也不会返回该电子邮件(它确实返回所有其他字段) 如果我这样做了一个请求:

https://graph.facebook.com/me?fields=id,name,email&access_token=MY_TOKEN

它只返回id和name。

5 个答案:

答案 0 :(得分:1)

感谢所有人的时间。在我从Facebook的“我的帐户”中删除了应用访问权限后,它开始自行运行,然后尝试再次访问。

答案 1 :(得分:0)

尝试使用c#sdk轻松使用它。 this link中有一些例子。

希望它有所帮助。

答案 2 :(得分:0)

使用FQL API:

<强>查询:

select contact_email from user where uid=me()

拨打:

https://api.facebook.com/method/fql.query?format=json&query=select+contact_email+from+user+where+uid%3Dme%28%29&access_token=[access_token]

答案 3 :(得分:0)

检查您是否拥有电子邮件权限或用户在批准您从网址提出的请求时取消选中该网址:facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=MY_URI&scope=email。您可以使用https://graph.facebook.com/me?fields=permissions&access_token=[TOKEN]进行检查。它应该给你回复,通知是否授予了电子邮件权限,如下所示:

{
    "permissions":{
        "data": [
        {
            "permission": "user_friends",
            "status": "granted"
         },
         {
            "permission": "email",
            "status": "granted"
         },
         {
            "permission": "public_profile",
            "status": "granted"
         }
      ]
   },
   "id": "10207905751235096"
}

检查facebook工具资源管理器以获取更多信息:https://developers.facebook.com/tools/explorer/

答案 4 :(得分:0)

我不确定这是否适用于某个应用,如果是这样,我在发布应用之前遇到了同样的问题。检查文档以确定它是否适用于您:

https://developers.facebook.com/apps/ {您的应用ID} / review-status /

批准后,电子邮件和其他敏感信息将显示...