6 facebook facebook-javascript-sdk
这真让我抓狂。一个用户登录我的Facebook应用程序,做了一些事情。然后转到Facebook并注销。我有一个小计时器,每隔一段时间会调用FB.getLoginStatus()一次,以查看用户是否仍在登录。但是每当调用FB.getLoginStatus()时,它都会返回一个带有会话对象的响应。WTF?它不应该返回undefined / unknown吗?
我正在使用对Facebook evar的绝对最基本的调用:
FB.init({
appId: 'MY APP ID',
cookies: false,
status: true,
xfbml: false
});
FB.getLoginStatus(function (response) {
if (response.session) {
console.info("Session exists");
} else {
console.info("Session empty");
}
});
setInterval(function () {
FB.getLoginStatus(function (response) {
if (response.session) {
console.info("Session exists");
} else {
console.info("Session empty");
}
});
}, 10000);
Run Code Online (Sandbox Code Playgroud)
我检查并再次检查了允许请求所请求的权限。我只要求发送电子邮件和短信。所以...有什么建议吗?
不要以困难的方式去做。这种情况有一个简单的解决方案,只需在getLoginStatus方法中添加一个“ true ”语句作为第二个参数即可:
FB.getLoginStatus(function (response) {
if (response === undefined || response.status === 'connected') {
// Do something after logout
}
}, true);
Run Code Online (Sandbox Code Playgroud)
请注意,每次调用此函数都会使您的应用程序转到 Facebook 的服务器,并且可能会给您带来相当大的网络负载,具体取决于您的实现。希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1666 次 |
| 最近记录: |