1

我已经建立了一个测试站点来尝试使用以下代码让 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 非常复杂,但即使所有内容都像上面那样剥离并运行,我也遇到了这个问题。

非常感谢任何帮助。

4

0 回答 0