2011-07-29 60 views
0

我一直在我的網站上實施Google/Facebook身份驗證系統。我使用他們各自的服務對用戶進行身份驗證,然後使用結果在我的終端實例化會話。 Google一直沒有問題,但對於Facebook而言,我遇到了困難。Facebook的公司身份驗證的公司?

我可以在沒有問題的情況下對用戶進行身份驗證,但是當嘗試驗證公司或其他Facebook頁面類型時,它會失敗。

例如,使用GraphAPI,我可以檢索其中一個示例https://graph.facebook.com/btaylor中顯示的值並正確存儲。

但是,當我嘗試使用相同的系統來驗證公司(例如https://graph.facebook.com/nike)時,由於對象不是由GraphAPI返回的用戶結果的一部分,所以它失敗。

正常的東西建立呼叫:

$FBcookie = get_facebook_cookie(YOUR_APP_ID, YOUR_APP_SECRET); 
$user = json_decode(file_get_contents_curl('https://graph.facebook.com/me?access_token='.$FBcookie['access_token'])); 

和存儲結果時,它工作正常的用戶:

$_Fname =$user->first_name; 
$_Lname =$user->last_name; 

但在嘗試訪問高於耐克例子看到預期的屬性,什麼都不會返回。

我甚至嘗試呼應出來的對象,看看有什麼:

print('<pre>'); 
print_r($user); 
print('</pre>'); 

對於用戶來說,我看到的一切,對於非用戶(企業,事件或其他頁面類型),我什麼也看不見。

問題是,有沒有人看過我們可能需要通過GraphAPI查詢的其他對象? Facebook的開發者頁面遍佈各處,並沒有真正的簡明教程。

任何幫助,將不勝感激;)

+0

'OAuth' ='OpenID' – zerkms

回答

0

在facebook公司/網頁信息如下:

$user->id; 
$user->name; 
$user->picture; 
$user->link; 
$user->likes; 
$user->category; 
$user->website; 
$user->username; 
$user->description; 
$user->public_transit; 

所以$user->first_name;$user->last_name;不存在。

你可以嘗試這樣的事情:

if(empty($user->first_name)&&empty($user->last_name)){ 

//probably company set $user->username; 

}