我已经组建了一个测试网站,尝试让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按钮显示自己登录的原因。
如果不是因为firebug停止代码一直说错误我甚至不知道有问题。
我的测试页面上的javascript非常复杂,但即使上面的内容被删除并运行,我也遇到了这个问题。
非常感谢任何帮助。