2011-07-29 61 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; 

}