Facebook JavaScript SDK - FB.Event.subscribe('auth.login', function(response) { }) issue


FB.Event.subscribe('auth.login', function(response) {
FB.api('/me', function(response){
    //Some operation
});});

以上JavaScript代码在用户通过Facebook登录时运行

当用户已经登录浏览器并打开包含上述JavaScript的页面时。

是否有办法只在用户第一次登录时执行该操作,而在用户已经登录浏览器时转义该操作?

运行FB。getLoginStatus查看用户是否已经连接到你的应用程序并登录。https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

FB.getLoginStatus(function(response) {
  if (response.session) {
    // logged in and connected user, someone you know
  } else {
    // no user session available, someone you dont know
  }
});

当且仅当用户未连接时尝试订阅事件

function listen_for_authorization (cb) {
  FB.getLoginStatus(function (res) {
    if (!res || res.status !== "connected") {
      FB.Event.subscribe('auth.login', cb);
    }
  }
}

我们在Safari/Mac, Firefox/Windows, Internet Explorer中复制了这个。

见http://developers.facebook.com/bugs/255767001140894

相关内容

最新更新