如何使用javascript sdk重用Facebook访问令牌登录

如何使用javascript sdk重用Facebook访问令牌登录,javascript,facebook-graph-api,Javascript,Facebook Graph Api,我需要使用javascript sdk实现Facebook Connect,现在,我可以允许用户使用他们的Facebook凭据登录我的网站。但问题是,每次用户访问我的页面时,它都会要求Facebook登录。是否可能已经登录的用户允许发布,共享和访问他们的个人资料详细信息和好友列表等。自动…有人能帮我解决这个问题吗…提前谢谢你。。 目前我的代码是这样的 在此处输入代码 //异步加载SDK (职能(d){ var js,id='facebook jssdk',ref=d.getElementsByT

我需要使用javascript sdk实现Facebook Connect,现在,我可以允许用户使用他们的Facebook凭据登录我的网站。但问题是,每次用户访问我的页面时,它都会要求Facebook登录。是否可能已经登录的用户允许发布,共享和访问他们的个人资料详细信息和好友列表等。自动…有人能帮我解决这个问题吗…提前谢谢你。。 目前我的代码是这样的

在此处输入代码
//异步加载SDK (职能(d){ 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); }(文件)

//加载时初始化SDK
window.fbAsyninit=函数(){
FB.init({
appId:'xxxxxxxxxxxx',//应用程序ID
channelUrl:'/'+window.location.hostname+'/channel',//频道文件的路径
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
//侦听并处理auth.statusChange事件
FB.Event.subscribe('auth.statusChange',函数(响应){
if(response.authResponse){
//用户已验证您的应用并登录到Facebook
api('/me',函数(me){
如果(我的名字){
document.getElementById('auth-displayname')。innerHTML=me.name;
document.getElementById('UserEmail').innerHTML=me.email;
document.getElementById('UserGender')。innerHTML=me.gender;
document.getElementById('AccessToken')。innerHTML=response.authResponse.AccessToken;
getPhoto();
}
})
document.getElementById('auth-loggedout').style.display='none';
document.getElementById('auth-loggedin')。style.display='block';
}否则{
//用户尚未验证您的应用,或未登录Facebook
document.getElementById('auth-loggedout').style.display='block';
document.getElementById('auth-loggedin')。style.display='none';
}
});
$(“#auth logout link”)。单击(函数(){FB.logout(函数(){window.location.reload();});});
函数getPhoto(){
FB.api('/me/picture?type=normal',函数(响应){
var str=“
”; document.getElementById(“ProfilePic”).innerHTML=str; }); } }
这太复杂了,您可以使用
FB.getLoginStatus
而不是
FB.Event.subscribe
,它会自动刷新令牌:

                            // Init the SDK upon load
                            window.fbAsyncInit = function () {
                                FB.init({
                                    appId: 'xxxxxxxxxxxxx', // App ID 
                                    channelUrl: '//' + window.location.hostname + '/channel', // Path to your Channel File 
                                    status: true, // check login status 
                                    cookie: true, // enable cookies to allow the server to access the session 
                                    xfbml: true  // parse XFBML 
                                });

                                // listen for and handle auth.statusChange events 
                                FB.Event.subscribe('auth.statusChange', function (response) {
                                    if (response.authResponse) {

                                        // user has auth'd your app and is logged into Facebook 
                                        FB.api('/me', function (me) {
                                            if (me.name) {
                                                document.getElementById('auth-displayname').innerHTML = me.name;
                                                document.getElementById('UserEmail').innerHTML = me.email;
                                                document.getElementById('UserGender').innerHTML = me.gender;
                                                document.getElementById('AccessToken').innerHTML = response.authResponse.accessToken;

                                                getPhoto();
                                            }
                                        })
                                        document.getElementById('auth-loggedout').style.display = 'none';
                                        document.getElementById('auth-loggedin').style.display = 'block';
                                    } else {
                                        // user has not auth'd your app, or is not logged into Facebook 
                                        document.getElementById('auth-loggedout').style.display = 'block';
                                        document.getElementById('auth-loggedin').style.display = 'none';
                                    }
                                });
                                $("#auth-logoutlink").click(function () { FB.logout(function () { window.location.reload(); }); });


                                function getPhoto() {
                                    FB.api('/me/picture?type=normal', function (response) {

                                        var str = "<br/> <img src='" + response.data.url + "'/>";

                                        document.getElementById("ProfilePic").innerHTML = str;

                                    });
                                }
                            }

                        </script>