【发布时间】: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