如何从公共档案中获取性别信息

我需要通过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(例如genderize.io)根据名字检索性别。
  • 从用户页面中刮取来自Facebook的性别信息(需要通过网络登录)。

  • 用户性别仅在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

    上一篇: How to get Gender from Public Profile

    下一篇: Get username field in Facebook Graph API 2.0