如何使用PHP facebook SDK获取用户的国家/地区

时间:2014-10-08 04:06:01

标签: php facebook-graph-api

到目前为止,我可以获得有关用户家乡的信息:

$userProfile = $this->_facebookRequest->getGraphObject(GraphUser::className());

然后我可以提取他们家乡的页面(家乡似乎不能转换为GraphLocation):

$homeTownPageId = $userProfile->getProperty('hometown')->getProperty('id');

然后我可以得到那个页面:

$pageRequest = (new FacebookRequest($this->_facebookSession, 'GET', '/' . $homeTownPageId ))->execute();

然后我被卡住了。如果您实际转到位置页面,它们看起来像this。在右上方,您可以清楚地看到“美国”。

如何使用facebook SDK提取该信息?我尝试将网页投放到GraphLocation并使用getCountry,但它不起作用。

1 个答案:

答案 0 :(得分:0)

当您构建登录按钮(例如使用< fb:login-button>)时,您必须确定"范围"属性您打算阅读哪些字段。有些字段是公开的,有些则不是。
例如,如果您要重新搜索 hometown 字段,则必须使用此处的Facebook按钮:

< fb:login-button autologoutlink =" true"的范围 =" public_profile,电子邮件的 user_hometown ">< / FB:登录按钮>

" 范围"中使用的参数(权限)是这些:

PERMISSIONS :public_profile(默认),user_friends,email,user_about_me,user_actions.books,user_actions.fitness,user_actions.music,user_actions.news,user_actions.video,user_actions:{app_namespace},user_activities ,user_birthday,user_education_history,user_events,user_games_activity,user_groups,user_hometown,user_interests,user_likes,user_location,user_photos,user_relationships,user_relationship_details,user_religion_politics,user_status,user_tagged_places,user_videos,user_website

扩展许可:read_friendlists,read_insights,read_mailbox,read_page_mailboxes,read_stream,manage_notifications,manage_pages,publish_actions,rsvp_event

请参阅文档:https://developers.facebook.com/docs/facebook-login/permissions/v2.2