我需要通过 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时,它就可以工作,我什至可以看到性别。 (转到“关于/联系方式和基本信息”)我使用我的个人帐户登录,而不是该用户的 friend ! 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。

可能的解决方法:

  • 使用性别 API(例如 genderize.io )根据第一个检索性别 姓名。
  • 从 Facebook 上抓取性别信息(需要 通过网络登录)从用户关于页面。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!