Javascript Facebook API-检测会话是否处于活动状态

Javascript Facebook API-检测会话是否处于活动状态,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,我肯定我只是忽略了Facebook API文档中的某些内容。基本上,在我加载FB图之后,我需要知道会话是否处于活动状态。。。我不能简单地假设他们已注销,如果他们在触发“auth.statusChange”事件后登录,就简单地重新渲染。我需要马上知道 下面是我使用的代码。最重要的是FB.getLoginStatus/getAuthResponse/getAccessToken不像我期望的那样工作;本质上,当调用时,它指示它们是登录还是注销 (function(d) { // Create

我肯定我只是忽略了Facebook API文档中的某些内容。基本上,在我加载FB图之后,我需要知道会话是否处于活动状态。。。我不能简单地假设他们已注销,如果他们在触发“auth.statusChange”事件后登录,就简单地重新渲染。我需要马上知道

下面是我使用的代码。最重要的是FB.getLoginStatus/getAuthResponse/getAccessToken不像我期望的那样工作;本质上,当调用时,它指示它们是登录还是注销

(function(d) { // Create fb-root var fb_root = document.createElement('div'); fb_root.id = "fb-root"; document.getElementsByTagName('body')[0].appendChild( fb_root ); // Load FB Async var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; ref.parentNode.insertBefore(js, ref); // App config-data var config = { appId : XXXX, cookie: true, status: true, frictionlessRequests: true }; window.fbAsyncInit = function() { // This won't work. // I can't assume they're logged out and rely on this to tell me they're logged in. FB.Event.subscribe('auth.statusChange', function(response) {}); // Init FB.init(config); // These do not inidicate if the user is logged out :( FB.getLoginStatus(function(response) { }); FB.getAuthResponse(function(response) { }); FB.getAccessToken(function(response) { }); }; }(document));
非常感谢您的帮助

谢谢你的帮助,但我在另一篇帖子上找到了答案:


显然,当您仍然处于沙盒模式时,FB.getLoginStatus只会在他们登录时启动回调,而不会在他们注销时启动回调。要使其正常工作,我必须禁用沙盒模式:

谢谢你的帮助,但我在另一篇帖子上找到了答案:


显然,当您仍然处于沙盒模式时,FB.getLoginStatus只会在他们登录时启动回调,而不会在他们注销时启动回调。要使其正常工作,我必须禁用沙盒模式:

你不是像我期望的那样工作吗?他们按他们应该的方式工作。您对它们有什么问题?我需要一个方法,如果用户已登录,则返回布尔值,或者返回会话数据的对象文字(可能带有指示是否已登录的状态属性)。取而代之的是,这种方法似乎是先假定用户已注销,然后订阅身份验证状态更改以通知您;它最初只会在用户登录时通知您,否则不会执行任何操作。这就是我遇到的问题,我需要知道他们是登录还是注销。我想你可能会说我想同步做这件事。难道不像我预期的那样工作吗?他们按他们应该的方式工作。您对它们有什么问题?我需要一个方法,如果用户已登录,则返回布尔值,或者返回会话数据的对象文字(可能带有指示是否已登录的状态属性)。取而代之的是,这种方法似乎是先假定用户已注销,然后订阅身份验证状态更改以通知您;它最初只会在用户登录时通知您,否则不会执行任何操作。这就是我遇到的问题,我需要知道他们是登录还是注销。我想你可以说我想同步做这件事。