2016-01-06 105 views
2

不确定是否有其他人在使用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。我没有收到任何类型的错误,所以我似乎无法找到为什么这不会被返回的原因。

如果有人知道一个简单的解决方法来返回位置,这将有很大的帮助。或者如果有人能够说明为什么地点不归还,这将同样有帮助。谢谢

回答

1

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

这里访问某些信息的权限,你可以链接请求通过登录功能: https://developers.facebook.com/docs/facebook-login/permissions 如何请求权限: https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking