无法从Facebook用户检索位置

时间:2016-01-06 18:57:18

标签: php facebook facebook-php-sdk

使用Facebook-PHP-SDK v5时,不确定是否有其他人遇到类似问题。检索用户配置文件项,例如name,first_name,last_name..etc。我有以下电话。

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。我没有收到任何类型的错误,所以我似乎无法找到为什么这不会被退回的原因。

如果有人知道返回位置的简单解决方法,这将会有很大帮助。或者,如果有人能说清楚为什么地点没有归还,那么这同样有帮助。感谢

1 个答案:

答案 0 :(得分:1)

可能是您示例中的用户未设置位置。 或者,您的应用是否明确要求用户访问位置的权限?如果没有,我相信facebook会限制您可以收集的某些信息,以避免此类隐私的影响。因此,您需要在Facebook上设置应用程序,然后当用户登录您的网站时,明确请求访问某些信息,如位置等。

以下是您可以通过登录功能请求的权限的链接: https://developers.facebook.com/docs/facebook-login/permissions 如何申请权限: https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking