0

我已经在我的网络应用程序中实现了 facebook。但是,这个错误不断出现(当 facebook 未处于活动状态时)。必须使用活动访问令牌来查询有关当前用户的信息。

An active access token must be used to query information about the current user. 

这是我的 Facebook JS:

window.fbAsyncInit = function()
{
FB.init({
appId      : '<?php echo AppInfo::appID(); ?>',
channelUrl : "<?php //echo URL.'scripts/facebook/channel.php'; ?>",
status     : false,
cookie     : true,
xfbml      : false
});

FB.api('/me',function(){});

FB.Event.subscribe('auth.authResponseChange', function(response) {

if (response.status === 'connected')
{
    window.location.replace("<?php echo Router::$url; ?>");
}
else if (response.status === 'not_authorized')
{
    FB.login(function(response){}, {scope:'email'});
}
else
{
    FB.login(function(response){}, {scope:'email'});
}

});
};

(function(d, s, id)
{
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id))
{
    return;
};
js = d.createElement(s);
js.id = id;
js.src = "<?php echo URL.'scripts/facebook/all.js'; ?>";
fjs.parentNode.insertBefore(js, fjs);
}
(document, 'script', 'facebook-jssdk'));

我在网上搜索并找到了FB.api(). 不幸的是,它没有帮助......

4

2 回答 2

1

您需要将调用包装到FB.api回调中FB.getLoginStatus,然后仅在用户实际连接时才执行它。

此外,您不能FB.login在用户触发的事件(例如点击事件)之外调用。

于 2013-06-26T16:59:41.517 回答
0

您必须生成访问令牌。访问令牌告诉 Facebook 您想要哪个用户,并允许您代表他们提出请求。

您可以手动生成一个. 或者,您可以在此处添加 Javascript 的身份验证过程。

于 2013-06-26T14:58:42.843 回答