我正忙着让facebook javascript SDK工作流程运行起来。要求是提供“登录”链接,而不是Facebook图标。为此,我做了一些即兴创作。到目前为止它工作得很好,但会话不会在页面之间持续存在。我认为会话在登录方法之后设置但是看起来不像那样。这是登录/注销,工作正常:
function login() {
FB.login(function(response) {
if (response.session) {
FB.api('/me', function(response) {
document.getElementById('socialauth').innerHTML = "<span>Welcome, " + response.name + " </span>"
+ "<a href=\"javascript:void(0)\" onclick=\"logout();\" style=\"color:white; font-weight: bold;\">(logout)</a>";
});
} else {
}
}, { perms: 'email,publish_stream' });
return false;
}
function logout() {
FB.logout(function(response) {
document.getElementById('socialauth').innerHTML = "<a href=\"javascript:void(0)\" style=\"color:white; font-weight: bold;\" onclick=\"login();\">login</a>";
});
}
以下是我正在测试的内容并不会触发:
$(document).ready(function() {
FB.getLoginStatus(function(response) {
if (response.status == "connected") {
// logged in and connected user, someone you know
alert("ok - 5 seconds has passed");
} else {
// no user session available, someone you dont know
alert("not ok");
}
});
});
我也在我的网址框中尝试“javascript:document.cooike”,看不到FB会话的证据。
请指教?
答案 0 :(得分:0)
您还需要确保在每个页面上加载Facebook SDK。对于使用jQuery的简单解决方案,请查看https://github.com/xocialhost/jquery.xocialCore.js
插件中的前两个函数涉及初始化FB和身份验证。
使用提供的功能,您可以执行以下操作:
$(document).ready(function() {
$.xcInitFacebook = function({appId:'yourappid',callback:function() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') { alert('logged in'); }
else { alert('not logged in'); }
} });
});