我正在编写一个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异常,我没有有效的身份验证密钥。
你能看出为什么会这样吗?
答案 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>';
}
这适用于所有浏览器,因为我测试过,祝你好运。