[英]Facebook Graph API - How to get Gender from Public Profile
我需要通过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
}
}
但是,当我直接通过网络打开用户ID时,它可以工作,甚至可以看到性别。 (转到“关于/联系方式和基本信息”)我用我的个人帐户登录,而不是该用户的朋友! 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"
}
还有其他想法可以获取性别,真实用户ID或昵称吗?
正如Facebook员工在评论中已经回答的那样,根本不可能,因为不支持获取“性别”或真实的Facebook用户ID。
可能的解决方法:
使用develoers.facebook.com =>工具和支持=> Graph API Explorer下的facebook graph api进行检查的最佳方法。
$fb = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$fbuser=$fb->api('/me/friends?fields=id,name,gender');
它将为您的所有好友提供姓名和性别的列表,您可以循环浏览并在循环中放置一个条件,以分隔男性和女性朋友。
希望能帮助到你
有关更多信息,请阅读本文
仅使用API版本v1.0返回用户性别。 不幸的是,v1.0的有效期至2015年4月30日, https://developers.facebook.com/docs/apps/changelog 。 http://www.name-gender.com/还是检查性别的很好的api。
在Facebook中无法获取个人资料的性别,但您可以拆分名字并将请求发送到https://genderapi.io
{"name":"mike", "q":"mike", "gender":"male", "total_names":8336, "probability":99}
形成我所理解的是不可能仅从图API v3中获得,因为在2.12中我仍然能够获得性别
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.