2012-12-05 53 views
2

代碼:獲取用戶的國家在Facebook的:getSignedRequest()的結果,而 '用戶' 字段

$facebook = new Facebook(array(
       'appId' => some_fb_app_id), 
       'secret' => some_fb_app_secret), 
       'cookie' => true, 
      )); 
$result = $facebook->getSignedRequest(); 
echo var_export($result,1); 

結果:

array (
    'algorithm' => 'HMAC-SHA256', 
    'code' => 'A.....l', 
    'issued_at' => 1354720771, 
    'user_id' => 'some_user_id', 
) 

我希望$result["user"]["country"]進行設置。我該如何解決這個問題?

ps。通過Facebook Graph API - how to get user country?

+0

習慣上表明您已經付出了一些努力來解決您的問題。你看過Facebook PHP SDK嗎?即http://developers.facebook.com/docs/howtos/login/signed-request/ – mtsr

回答

0

根據the facebook PHP SDK getSignedRequest()只給你簽名的請求,就像名字所示。用戶信息通常是通過圖形API得到,使用電話一樣

$facebook->api('/me','GET'); 

,讓你與你所使用的相關的access_token用戶的配置文件。

請注意,您將只能獲得您有權訪問的信息,因此如果您沒有在基本範圍之外向您的應用範圍添加特定位置的信息,則無法獲得該信息。

+0

使用'$ facebook-> api('/ me','GET');'我可以收到'位置' 'array ( '身份證'=> '106045326100801', '名'=>'第聶伯羅彼得羅夫斯克,烏克蘭, ),' 但 '名' 只是一個地名 - 國家沒有嚴格的規定。使用106045326100801我可以檢索詳細的位置信息 - 但國家並非嚴格提供。 –