无法从Facebook用户检索位置
问题描述:
不确定是否有其他人在使用Facebook-PHP-SDK v5时遇到过类似的问题。检索用户配置文件项目,如名称,名字,姓氏等。我有以下电话。无法从Facebook用户检索位置
public function getProfile(){
try {
$profile_request = $this->fb->get('/me?fields=name,first_name,last_name,email,gender,relationship_status, birthday, location');
$profile = $profile_request->getGraphNode()->asArray();
return $profile;
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
session_destroy();
// redirecting user back to app login page
header("Location: ./");
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
这是被称为我的index.php页面如下:
$profile = $fblink->getProfile();
print_r($profile);
现在奇怪的,这是所有的用户数据都被打印除用户的位置。我已经在我的应用中检查了我的权限,并且已启用Users_location。我没有收到任何类型的错误,所以我似乎无法找到为什么这不会被返回的原因。
如果有人知道一个简单的解决方法来返回位置,这将有很大的帮助。或者如果有人能够说明为什么地点不归还,这将同样有帮助。谢谢
答
这可能是您的示例中的用户未设置位置。 或者,您的应用程序是否明确要求用户访问位置的权限?如果没有,我相信facebook会限制您可以收集的某些信息,以避免此类隐私问题。因此,你需要建立在Facebook上的应用程序,然后当用户去登录,您的网站上,明确要求如位置等
这里访问某些信息的权限,你可以链接请求通过登录功能: https://developers.facebook.com/docs/facebook-login/permissions 如何请求权限: https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking