2010-08-02 5 views
1

Google 사이트의 facebook connect 로그인 코드를 생성하고 있는데, 사용자에게 필요한 권한이 있는지 확인하는 방법을 찾을 수 없습니다.facebook connect : 사용자가 자바 스크립트로 권한이 있는지 확인하십시오.

이전 자바 스크립트와 함께 각 권한에 대해 하나의 대화 상자가 열리고 권한이 허용되었는지 여부를 리턴 코드가 말하면 어떻게 javascript 코드와 작동합니까? 여기

이 문서들은이 예제를 가지고, 내가 사용자가
<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> 

BTW 권한

를 가지고 있는지 확인하려는 TODO와 내가 지금까지 가지고 코드입니다 http://developers.facebook.com/docs/reference/javascript/FB.login

곳 그들은 사용자 정의 버튼을 사용합니다. 그래서 나는 fb : loginbutton과 유사한 것이있을 것이라고 의심합니다.

+0

단지 질문을 받았다 : http://stackoverflow.com/questions/3388367/check-for-extended-permissions-with-new-facebook-javascript-sdk/3388721 # 3388721 – serg

+0

반드시 fql이없는 방법이 있어야합니다. 아무 것도 나오지 않으면 고맙습니다. 아마도 fql 솔루션을 사용할 것입니다. – JohnSmith

답변

2
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'); 
    } 
});

Origina l Facebook 가이드 : http://developers.facebook.com/docs/reference/javascript/FB.login

1

"user_friends"및 "publish_actions"권한을 확인하기 위해이 솔루션을 만들었습니다. 둘 다 허용되지 않으면 사용자에게 "re-autenticate"권한을 강제합니다. 콜백 함수는 모든 권한이 주어진 경우에만 호출됩니다.

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(); 
}); 
관련 문제