在Facebook上获取用户信息

时间:2011-08-20 15:41:30

标签: php facebook facebook-graph-api

我正在编写一个Facebook应用程序,它可以获取有关用户的一些信息并对其进行一些操作。

我获得了这样的用户权限:

$facebook = new Facebook(array(
  'appId'  => APPID,
  'secret' => 'APPSECRET',
));

 $logoutUrl = $facebook->getLogoutUrl();

(默认权限是user_info)

 $user_profile = $facebook->api('/me');

用户登录后,应用程序会浏览几个PHP页面,并在显示中显示一个消息。 在上一个PHP页面中,我尝试再次获取用户信息。

   $facebook = new Facebook(array(
      'appId'  => APPID,
      'secret' => 'APPSECRET',
    ));

     $logoutUrl = $facebook->getLogoutUrl();
     $user_profile = $facebook->api('/me');

我的问题是,在某些浏览器(Chrome)上它可以正常工作,而在其他浏览器(IE)上却没有 我得到一个Oauth异常,我没有有效的身份验证密钥。

你能看出为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下启动身份验证流程。 如果仍然发生这种情况,请查看这是否适用于cookie设置。

尝试正确设置标题。

答案 1 :(得分:0)

事情很简单:

首先你启动facebook:

$facebook = new Facebook(array(
  'appId'  => APPID,
  'secret' => 'APPSECRET',
));

然后你得到了用户

$user = $facebook->getUser();

最后你测试是否有用户,如果你对facebook api做了所有请求并生成了注销网址,如果没有你得到登录网址并将浏览器重定向到该网址。

if ($user){
   $user_profile = $facebook->api('/me');
   $logoutUrl = $this->facebook->getLogoutUrl();
else{
   $loginUrl = $facebook->getLoginUrl(array('scope' => 'email,user_birthday'));
   echo '<script type="text/javascript">top.location.href = "'.$loginUrl.'"</script>';
}

这适用于所有浏览器,因为我测试过,祝你好运。