FB访问令牌

时间:2013-06-26 13:42:36

标签: javascript facebook

我已将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()。不幸的是,它没有帮助......

2 个答案:

答案 0 :(得分:1)

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

此外,您无法在用户触发的事件之外调用FB.login,例如点击事件。

答案 1 :(得分:0)

您必须生成访问令牌。访问令牌告诉Facebook您想要哪个用户,并授予您代表他们发出请求的权限。

你可以manually generate one。或者,您可以为Javascript添加可以found here的身份验证过程。

相关问题