【问题标题】:Facebook Graph API - get user home countryFacebook Graph API - 获取用户本国
【发布时间】:2015-04-07 04:20:22
【问题描述】:

我想通过用户的家乡来获取用户的国家。

我正在使用最新的 Graph API v2.3,并且我知道 FQL 在此版本中已弃用,因此我无法再使用 Facebook Graph API - how to get user country?

唯一的办法就是通过 Graph API 来做,但是比较棘手的是

$fb_user = (new FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());

var_dump($fb_user->getProperty('hometown'));

只返回位置页面ID和名称,然后我做

$graph_obj_hometown = (new FacebookRequest($session, 'GET', '/' . $hometown_id, array('locale' => 'en_US')))->execute()->getGraphObject();

var_dump($graph_obj_hometown->asArray());

里面没有国家信息,有谁知道如何获取用户的国家?

另外,我尝试将用户家乡作为 GraphLocation 对象,然后也许我可以使用 getCountry() 方法,但它仍然无法正常工作

$fb_user->getProperty('hometown', 'Facebook\GraphLocation');

对象只在对象中存储了位置名称和位置页面ID。

谁能帮帮我?

【问题讨论】:

  • 你必须先询问字段
  • @WizKid 是对的 - 试试 me/fields=hometown 并确保您的应用授予了 user_hometown 权限?如果是这样,您应该按以下格式获取家乡的 pageId:{“hometown”:{“id”:“110769888951990”,“name”:“都柏林,爱尔兰”},“id”:“772082842826394”}跨度>
  • @Neil 是的,我已经这样做了,所以我说“返回位置页面 id 和名称”
  • @WizKid 我已经做了
  • country 字段不是强制性的。如果你很幸运,它就在那里,如果没有,它就没有。

标签: php facebook facebook-graph-api


【解决方案1】:

获取家乡页面id后,查询: https://graph.facebook.com/v2.5/HOMETOWN_ID?fields=location 结果对象将包含国家/地区。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多