javascript - 如何重用 Facebook 访问 token 以使用 javascript sdk 登录

标签 javascript facebook-graph-api

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

在此输入代码 //异步加载SDK (函数(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 如果(d.getElementById(id)){返回; } js = d.createElement('脚本'); js.id = id; js.异步=真; js.src = "//connect.facebook.net/en_US/all.js"; ref.parentNode.insertBefore(js, ref); }(文档));

                            // 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>

最佳答案

这太复杂了,你可以用FB.getLoginStatus代替FB.Event.subscribe,它会自动刷新Token:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus

关于javascript - 如何重用 Facebook 访问 token 以使用 javascript sdk 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25179332/

相关文章:

javascript - 无法将 search() 与可变模式一起使用

javascript - html、javascript 和 css 中的列表框

facebook - 如何通过Graph API访问照片位置标签?

jquery - 动态 Facebook Open Graph 标签可能吗?

javascript - 看到元素时滚动功能激活

javascript android window.onorientationchange 连续触发

facebook - 如何在不请求他/她的许可的情况下在 facebook 中获取用户的公共(public)信息?

facebook - 使用 Facebook API 发布到墙上

javascript - Facebook graph api JSONP格式,第一行的/* */是什么意思?

javascript - 使用 reactjs 在 POST 后重定向