2012-01-02 40 views
0

我在我的網站上有一個Facebook Connect登錄,我用它獲取有關我的用戶的一些數據。我想知道的一件事是用戶是否已經通過Facebook驗證。我在文檔中將其看作簡單的「已驗證」值。當用戶授權我的應用程序時,我要求提供一些基本的訪問參數,所以我認爲我應該可以訪問它。但是當我嘗試返回值時,我只是得到一個空值。如何使用PHP獲取用戶的「已驗證」狀態

我的代碼是這樣的:

if ($facebook->getSession()) { 
$uid = $facebook->getUser();   
$fbme = $facebook->api('/me');   
} else {   
$params = array(  
'fbconnect'=>0, 
'canvas'=>1,  
'req_perms'=>'email,user_birthday,user_location,user_about_me' 
); 

$birthday=$fbme['birthday']; 
echo "Birthday=$birthday"; //This works 
$verified=$fbme['verified']; 
echo "Verified=$verified"; //This just shows nothing. 

好吧,vardump給了我以下。我在那裏看到它。我想我必須弄清楚現在如何提取它。 (不要擔心,這是一個測試用戶,我已經改變了一些數據,所以我不會在這裏暴露任何個人信息的)

用戶#1(擁有經過驗證的返回值):

{ ["id"]=> string(10) "1503999261" ["name"]=> string(12) "Monique Bush" 
["first_name"]=> string(7) "Shane" ["last_name"]=> string(4) "Bush" ["link"]=> string(49) 
"http://www.facebook.com/profile.php?id=1503999221" ["birthday"]=> string(10) "02/17/1974" 
["hometown"]=> array(2) { ["id"]=> string(0) "" ["name"]=> NULL } ["location"]=> array(2) 
{ ["id"]=> string(0) "" ["name"]=> NULL } ["bio"]=> string(24) "I just like to have fun!" 
["gender"]=> string(6) "female" ["email"]=> string(22) "[email protected]" 
["timezone"]=> int(-5) ["locale"]=> string(5) "en_US" ["verified"]=> bool(true) 
["updated_time"]=> string(24) "2011-04-17T14:24:16+0000" } fbid=1503999221 

用戶#2:(在所有返回任何甚至不是一個錯誤。)

{ ["id"]=> string(15) "100003353106485" ["name"]=> string(14) "Randy Mason" 
["first_name"]=> string(5) "Randy" ["last_name"]=> string(8) "Mason" ["link"]=> 
string(54) "http://www.facebook.com/profile.php?id=100003353106485" ["birthday"]=> 
string(10) "02/05/1985" ["work"]=> array(1) { [0]=> array(1) { ["employer"]=> array(2) 
{ ["id"]=> string(15) "107572525938726" ["name"]=> string(3) "IBM" } } } 
["education"]=> array(2) { [0]=> array(3) { ["school"]=> array(2) { ["id"]=> string(15) 
"107705972591905" ["name"]=> string(55) "Thomas Jefferson High School for Science and 
Technology" } ["year"]=> array(2) { ["id"]=> string(15) "194603703904595" ["name"]=> 
string(4) "2003" } ["type"]=> string(11) "High School" } [1]=> array(3) { ["school"]=> 
array(2) { ["id"]=> string(11) "56827075005" ["name"]=> string(31) "The College of 
William and Mary" } ["year"]=> array(2) { ["id"]=> string(15) "142963519060927" 
["name"]=> string(4) "2010" } ["type"]=> string(7) "College" } } ["gender"]=> string(4) 
"male" ["email"]=> string(22) "[email protected]" ["timezone"]=> int(-7) 
["locale"]=> string(5) "en_US" ["updated_time"]=> string(24) "2011-12-31T22:29:34+0000" } 

所以我可以用這方面的工作。然而,我想知道爲什麼我不會在第二種情況下出現錯誤。

+0

怎麼樣'的var_dump(fbme $)去;'? – zerkms 2012-01-02 00:34:02

回答

1

只要verified將永遠true時,帳戶真的驗證 - 你可以用

$verified = !empty($fbme['verified']);