我已经建立了一个测试站点来尝试使用以下代码让 facebook 登录,但是我在 FireBug 中出现了两个错误,当我忽略它们并继续时,这似乎不会影响网页的功能.
HTML:
<div class="fb-login-button" show-faces="true" autologoutlink="true" width="200" max-rows="1"></div>
<div id="FBLogin"><a id="FBLoginLnk" href="#" title="Login with Facebook"><img src="./login-button.png" /></a></div>
Javascript:
$(document).ready(function(){
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_UK/all.js', function(){
FB.init({
appId: "012345678901234",
status: true, // check login status
channelUrl : '//website.co.uk/bla/channel.php', // Channel File
cookie: true,
xfbml: true, // parse XFBML
oauth: true
});
FB.Event.subscribe('auth.statusChange', function() {
console.timeStamp("Login even")
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
console.log("Connected Event");
// Good to go
} else if (response.status === 'not_authorized') {
console.log("Not Authorized Event");
NotLoggedIn();
}else{
console.log("Not Logged In Event");
NotLoggedIn();
}
});
});
FB.getLoginStatus(function (response) {
console.timeStamp("getLoginStatus")
if (response.status === 'connected') {
console.log("Connected");
} else if (response.status === 'not_authorized') {
console.log("Not authorised");
NotLoggedIn();
window.location = 'https://graph.facebook.com/oauth/authorize?client_id=012345678901234&scope=publish_stream&redirect_uri=http://www.website.co.uk/bla';
} else {
console.log("User not logged in status unknown");
NotLoggedIn();
window.location = 'https://graph.facebook.com/oauth/authorize?client_id=012345678901234&scope=publish_stream&redirect_uri=http://www.website.co.uk/bla';
}
});
});
$('div#FBLogin').click(function(){
window.location = 'https://graph.facebook.com/oauth/authorize?client_id=012345678901234&scope=publish_stream&redirect_uri=http://www.danthegeek.co.uk/bla';
});
});
function NotLoggedIn(){
console.timeStamp("notLoggedIn Called");
// Reset Website
}
我得到的两个错误是 xd_arbiter.php?version=27 似乎被调用了。
JSON.parse:字符串文字第 13 行中的错误控制字符
JSON.parse:JSON 数据第 13 行后出现意外的非空白字符
作为概述,目的是让页面自动重定向到 Facebook 的登录页面(不是弹出窗口,因为这在移动设备上无法正确显示)。如果已经登录,则不会发生重定向,但用户可以注销,这将导致显示登录按钮,单击该按钮将转到 Facebook 登录页面,再次没有弹出窗口。这一切似乎都工作正常,但我不确定代码结构是否正是它应该的样子。我不相信这是错误的一部分。我真的很想使用 facebook 社交按钮登录,但无法让它重定向到 facebook 登录页面,它似乎只会导致一个弹出窗口,这就是为什么我显示我自己的使用 Facebook 按钮登录的原因。
如果不是萤火虫一直在停止代码说有错误,我什至不知道有问题。
我的测试页面上的 javascript 非常复杂,但即使所有内容都像上面那样剥离并运行,我也遇到了这个问题。
非常感谢任何帮助。