Facebook Sdk没有初始化

时间:2018-05-02 17:39:24

标签: javascript facebook

我正在尝试在我的网站上启用javascript facebook登录,并且我一直收到一个javascript错误,说FB没有定义。我完全按照facebook上的开发指南进行操作,我不相信fbasyncinit实际上正在工作。

https://developers.facebook.com/docs/javascript/quickstart

我的初始化代码直接在我的布局页面中打开。

    <script>
        window.fbAsyncInit = function ()
        {
            FB.init(
            {
                appId            : 'xxxxxxxxx',
                autoLogAppEvents : true,
                xfbml            : true,
                version          : 'v3.0'
            });

            $(document).ready(function ()
            {
                $(document.body).on('click', '#facebook-login', function ()
                {
                    FB.getLoginStatus(function (response)
                    {
                        alert(response);
                    });
                });
            });
        };

        (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 = "https://connect.facebook.net/en_US/sdk.js";
             fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    </script>

当我点击我的#facebook-登录按钮时,它会点击FB.getLoginStatus(),但随后会抛出&#34; JavaScript运行时错误:&#39; FB&#39;未定义&#34;。我正在我的本地计算机上进行调试,但我已经尝试将此代码推送到具有外部IP的开发计算机,我已经将我的fbook开发人员应用程序URL更改为该URL但它仍然无法正常工作。

我发现的所有谷歌搜索结果都来自多年前,根本没有帮助。

**更新1 ** 我试着把这个ajax调用放在我的document.ready中,它总是失败。那么问题可能在于检索SDK的URL?我使用和不使用&#34; https:&#34;

尝试了网址
$.ajax(
{
    url: '//connect.facebook.net/en_US/sdk.js',
    dataType: 'script',
    cache: true,
    success:function(script, textStatus, jqXHR)
    {
        FB.init(
        {
            appId      : 'xxxxxxxxxx',
            xfbml      : true,
            version    : 'v3.0'
        });

        FB.getLoginStatus(updateStatusCallback);
    },
    error:function(){ alert("Failed")}
});

0 个答案:

没有答案