2016-01-06 85 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