我有以下基本代码在chrome和firefox上运行正常,但是当我在Opera上运行时,我可以使用登录链接,但是在返回时,它似乎已经丢失了会话并且我得到了“活动访问”必须使用令牌来查询有关当前用户“
的信息您应该可以在http://www.leagues-online.co.uk/test.php
进行测试<?
$appid='XXX';
$appsecret='XXX';
$facebook = new Facebook(array(
'appId' => $appid,
'secret' => $appsecret,
));
$fbid = $facebook->getUser();
$params = array(
scope => '',
redirect_uri => 'http://www.leagues-online.co.uk/test.php'
); // scope: read_stream, friends_likes
$loginUrl = $facebook->getLoginUrl($params);
$params = array( 'next' => 'http://www.leagues-online.co.uk/test.php' );
$logoutUrl = $facebook->getLogoutUrl($params); // $params is optional.
if ($fbid) {
try { // Proceed knowing you have a logged in user who's authenticated.
$fb_profile = $facebook->api('/me');
echo "<a href='$logoutUrl'>Logout</a> | <p>fb user: $fb_profile[id]</p>";
echo "<p>Logged in as $fb_profile[name]</p>";
} catch (FacebookApiException $e) {
echo "<p>Error!<br />
<a href='$loginUrl'>Login</a></p>
<pre>".htmlspecialchars(print_r($e, true)).'</pre>';
}
}else{
echo "No facebook user
<a href='$loginUrl'>Login</a>";
}
?>
有什么建议吗?
修改
当我请求'email,offline_access'priv's时,它似乎也适用于Opera。我不认为你需要这些只是让他们登录,但也许我错了?我真的不想要求这些,当我想要它们获取他们的ID和公共信息,以允许他们使用Facebook登录我的网站。
编辑2
我错过了javascript部分,似乎是必要的。我以为我能够链接到登录页面并在没有它的情况下重定向回来,但看起来我错了!