2016-03-07 169 views
2

我试图获得Facebook用户的email address,但我无法访问,尽管他们的电子邮件地址隐私设置为公开。获取Facebook用户的公共电子邮件地址

这是我的代码:

graph = facebook.GraphAPI(access_token) 
data = graph.request('/search?q=' +user+'&type=user') 
id = data.items()[1][1][0]["id"] 
args = {'fields' : 'id,name,email' } 
profile = graph.get_object(id, **args) 
print profile 

我没有得到任何错误,我得到的ID和姓名,而不是电子邮件地址。

回答

3

该用户必须向您的应用授予permission供您阅读他们的email address,即使他们的email address隐私设置为public

您应该使用Facebook Graph API Explorer来查看您是否能够使用您的应用程序token获取该人的电子邮件地址。

对于Python代码,我觉得你这样做是正确:

import facebook 
graph = facebook.GraphAPI(access_token) 
fields = {'fields' : 'id,name,email'} 
profile = graph.get_object(facebook_user_id, **fields) 
+0

OK我试过,我看不到他的信息。所以我不能让个人信息,如果他是我的朋友和我可以在他的个人资料中看到他的邮件有没有其他方法? –

+1

当然不是。如果用户没有专门授权您对此做任何事情,您将如何处理电子邮件? – luschn

+0

@luschn好吧。不知何故,我决定,如果我有访问令牌引用我的个人资料,我有我的个人资料相同priviliges ..但它没有任何意义。谢谢! –