3

我正在尝试登录 facebook,这是我的代码:

<body>
<form id="form1" runat="server">
    <div id="fb-root"></div>
    <script>    
        (function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=221385331301885";
            fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
    </script> 
    <div class="fb-login-button" data-show-faces="false" data-width="300"></div>
    <script>
        window.fbAsyncInit = function () {
            FB.init({
                appId: '221385323101885', // App ID
                status: true, // check login status
                cookie: true, // enable cookies to allow the server to access the session
                xfbml: true  // parse XFBML
            });

            // Additional initialization code here
        };

        // Load the SDK Asynchronously
        (function (d) {
            var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
            if (d.getElementById(id)) { return; }
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            ref.parentNode.insertBefore(js, ref);
        } (document));
    </script>
</form>
</body>

当我运行此代码时,我收到此错误消息:

在此处输入图像描述

我尝试使用https://developers.facebook.com/tools/debug调试窗口中的 URL,但是它一直告诉我 URL 不可抓取:/ 如果您想尝试调试,URL 如下:

https://www.facebook.com/dialog/oauth?api_key=221385331301885&app_id=221385331301885&client_id=221385331301885&display=popup&domain=127.0.0.1&locale=en_GB&origin=1&redirect_uri=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23cb%3Df4b3e7f08%26origin%3Dhttp%253A%252F%252F127.0.0.1%253A81%252Ff22a06766%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23609e538&response_type=token%2Csigned_request&sdk=joey

我更改了我的主机文件以添加 127.0.0.1 localhost.local 的条目以匹配我的 Facbook 应用程序设置。以下是我的主机文件和我的 facebook 应用程序设置的屏幕截图:

主机文件

Facebook 应用程序设置

如您所见,hosts 文件和 facebook 应用程序设置中的域是相同的。关于如何解决这个问题的任何想法?谢谢

4

3 回答 3

3

我想我找到了你的问题,但我不确定它为什么会发生......

我试图完全按照您所做的那样做,但是使用移动网络时,我在网站选项中有http://localhost(并且移动设备是空的)。一切正常。

当我将它从网站切换到移动网络时,我收到了与您报告的相同的错误。您必须使用移动选项吗?

此外,您正在加载 fb sdk 两次,不知道为什么,第一次使用此源:

//connect.facebook.net/en_GB/all.js#xfbml=1&appId=221385331301885

然后再次使用此来源:

“//connect.facebook.net/en_US/all.js”

重点是什么?简单地这样做有什么问题:

<div id="fb-root"></div>
<div class="fb-login-button" data-show-faces="false" data-width="300"></div>
<script>
    window.fbAsyncInit = function () {
        FB.init({
        appId: '221385323101885', // App ID
        status: true, // check login status
        cookie: true, // enable cookies to allow the server to access the session
        xfbml: true  // parse XFBML
        });

        // Additional initialization code here
    };

    // Load the SDK Asynchronously
    (function (d) {
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) { return; }
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    } (document));
</script>

希望它能解决你的问题。

于 2012-04-04T08:46:12.580 回答
3

为我添加Site URL : http://localhost作品

于 2013-06-05T20:45:20.867 回答
0

现在您必须在 Apache 中创建一个虚拟主机

于 2014-01-31T17:24:34.440 回答