facebook connect:检查用户是否具有javascript权限

facebook connect:检查用户是否具有javascript权限,javascript,facebook,Javascript,Facebook,我正在我们的网站上为facebook connect创建登录代码, 但是,我找不到如何检查用户是否具有所需的权限 在旧的javascript中,每个权限都会打开一个对话框,返回的代码会告诉您该权限是否被接受,它是如何与javascript代码一起工作的 这是我到目前为止得到的代码,以及我想检查用户是否拥有权限的TODO <div id="fb-root"></div> <script> window.fbAsyncInit = functio

我正在我们的网站上为facebook connect创建登录代码, 但是,我找不到如何检查用户是否具有所需的权限

在旧的javascript中,每个权限都会打开一个对话框,返回的代码会告诉您该权限是否被接受,它是如何与javascript代码一起工作的

这是我到目前为止得到的代码,以及我想检查用户是否拥有权限的TODO

   <div id="fb-root"></div>
   <script>
   window.fbAsyncInit = function() {
    FB.init({appId: 'MY API KEY', status: true, cookie: true,xfbml: true});
    FB.Event.subscribe('auth.login', function(response) {
        alert("logged in");

        //TODO: check if all perms has been accepted!!!!
        //if they have NOT been accepted, I want to logout the user
    });

    FB.getLoginStatus(function(response) {

         if (response.session) {    
            // logged in and connected user, again, check if all perms has been accepted
            alert("already logged in");    
         }

     });


  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>
<fb:login-button perms="email,user_birthday,status_update,publish_stream" >Login with Facebook</fb:login-button>

window.fbAsyninit=函数(){
init({appId:'myapi KEY',status:true,cookie:true,xfbml:true});
FB.Event.subscribe('auth.login',函数(响应){
警报(“登录”);
//TODO:检查是否已接受所有烫发!!!!
//如果他们没有被接受,我想注销用户
});
FB.getLoginStatus(函数(响应){
if(response.session){
//已登录并连接的用户,再次检查是否已接受所有PERM
警报(“已登录”);
}
});
};
(功能(){
var e=document.createElement('script');e.async=true;
e、 src=document.location.protocol+
“//connect.facebook.net/en_US/all.js”;
document.getElementById('fb-root').appendChild(e);
}());
使用Facebook登录
顺便说一句,在文档中他们有这个例子

当他们使用自定义按钮时,这就是为什么我怀疑fb会有类似的功能:loginbutton

FB.Event.subscribe('auth.login',function(response) {
   if(response.session) { //checks if session is true
      alert('logged in');

      if(response.perms) { //checks if perms is true = permissions are granted
         alert('perms granted');
      }
      else { //if perms is false = no permissions granted
         alert('no perms');
      }
   }
   else { //if something goes wrong
      alert('login failure');
   }
});
原始Facebook指南:

我制定此解决方案是为了检查“用户朋友”和“发布操作”权限,如果两者都不允许,则强制用户“重新验证”。只有在授予所有权限时才会调用回调函数

function login(cb,forceAuth) {
    FB.getLoginStatus(function (response) {
        if (response.status !== 'connected' || forceAuth==true){
            FB.login(function (response) {
                checkPermissions(cb,false);
            }, {scope: 'publish_actions,user_friends'});
        } else {
            checkPermissions(cb);
        }
    });
}

function checkPermissions(cb,forceAuth){
    FB.api(
        "/me/permissions",
        function (response) {
            if (response.data[0]['publish_actions']==undefined || response.data[0]['publish_actions']==0 ||
                response.data[0]['user_friends']==undefined || response.data[0]['user_friends']==0) {
                if (forceAuth!=false)
                    login(cb,true);
            } else {
                cb();
            }
        }
    );
}
如何使用:

login(function () {
    myLogedAndAllowedFunction();
});

刚才有人问:肯定有一种没有fql的方法可以做到这一点吗?谢谢,如果没有其他问题,我们可能会使用fql解决方案