如何从公共档案中获取性别信息
我需要通过Facebook Graph API从他的公开个人资料中检索Facebook用户的性别。
不幸的是,它并不总是有效。 看到这些例子:
工作:https://graph.facebook.com/1423993568
{
"id": "1423993568",
"gender": "male",
...
}
不工作:https://graph.facebook.com/10152133878666403
{
"error": {
"message": "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
"type": "GraphMethodException",
"code": 100
}
}
但是,当我通过网络直接打开用户标识时,它可以工作,甚至可以看到性别。 (转到“关于/联系和基本信息”)我用我的个人帐户登录,而不是此用户的朋友! http://www.facebook.com/10152133878666403
问题是什么? 来自Facebook的请求或安全功能是否存在问题?
更新:
我可以做这样的解决方法,但只有当我用我的浏览器登录时:
在打开此请求时,请使用app_scoped_user_id并从重定向URL获取Facebook用户名:
http://www.facebook.com/app_scoped_user_id/10152133878666403
--> https://www.facebook.com/shiffoni
--> https://graph.facebook.com/shiffoni
收益:
{
"id": "669926402",
"first_name": "Shiffoni",
"gender": "female",
"last_name": "Leonhardt",
"locale": "de_DE",
"name": "Shiffoni Leonhardt",
"username": "shiffoni"
}
任何其他想法来获得性别,真实userId或昵称?
正如在Facebook员工的评论中已经回答的那样,这根本不可能,因为它不支持获得'性别'或真实的Facebook用户ID。
可能的解决方法:
用户性别仅在API v1.0版本中返回。 不幸的是v1.0可以在2015年4月30日之前发布https://developers.facebook.com/docs/apps/changelog。 http://www.name-gender.com/也是一个很好的api来检查性别。
最好的方法来检查它使用facebook图形api under develoers.facebook.com =>工具和支持=>图形API资源管理器。
$fb = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$fbuser=$fb->api('/me/friends?fields=id,name,gender');
它会给你一个名字和性别的所有朋友的数组,你可以循环并在循环中放置一个条件来分隔男性和女性朋友。
希望能帮助到你
更多信息请阅读这篇文章
通过性别获得Facebook朋友
链接地址: http://www.djcxy.com/p/32617.html