Facebook javascript sdk基本登录或初始化错误

时间:2015-03-11 08:03:32

标签: javascript facebook logging initialization

我有以下代码,主要是从https://developers.facebook.com粘贴的代码。

<body>
    <div id="fb-root"></div>
    <button id="fb-auth">Login</button>

    <script type="text/javascript">
        var button;
        var userInfo;

        window.fbAsyncInit = function() {
            FB.init({ appId: '864702126886557', // your appId
                status: true,
                cookie: true,
                xfbml: true,
                oauth: true});

           showLoader(true);

           function updateButton(response) {
                button       =   document.getElementById('fb-auth');
                userInfo     =   document.getElementById('user-info');

                if (response.authResponse) {
                    //user is already logged in and connected
                    FB.api('/me', function(info) {
                        login(response, info);
                    });

                    button.onclick = function() {
                        FB.logout(function(response) {
                            logout(response);
                        });
                    };
                } else {
                    //user is not connected to your app or logged out
                    button.innerHTML = 'Login';
                    button.onclick = function() {
                        showLoader(true);
                        FB.login(function(response) {
                            if (response.authResponse) {
                                FB.api('/me', function(info) {
                                    login(response, info);
                                });
                            } else {
                                //user cancelled login or did not grant authorization
                                showLoader(false);
                            }
                        }, {scope:'email,user_birthday,status_update,publish_stream,user_about_me'});
                    }
                }
            }

            // run once with current status and whenever the status changes
            FB.getLoginStatus(updateButton);
            FB.Event.subscribe('auth.statusChange', updateButton);
        };

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

当我执行此代码时,我收到以下错误: -

未捕获错误:指定了无效版本sdk.js:96(匿名函数)

来自sdk.js的行:96: -

__ d(&#34; sdk.ErrorHandling&#34; [&#34; ManagedError&#34;&#34; sdk.Runtime&#34;&#34; sdk.Scribe&#34;&# 34; sdk.UA&#34;&#34; sdk.feature&#34;&#34; wrapFunction&#34],功能(A,b,C,d,E,F,G,H,I, j,k,l){b .__ markCompiled&amp;&amp; b .__ markCompiled(); var m = k(&#39; error_handling&#39;,false),n =&#39;&#39 ;; function o( u){var v = u._originalError; delete u._originalError; i.log(&#39; jssdk_error&#39;,{appId:h.getClientID(),error:u.name || u.message,extra: u}); throw v;} function p(u){var v = {line:u.lineNumber || u.line,message:u.message,name:u.name,script:u.fileName || u。 sourceURL || u.script,堆栈:u.stackTrace || u.stack}; v._originalError = U;若(j.chrome()&安培;&安培; /([\ W:./] + JS): (\ d +)/ .test(u.stack)){v.script = RegExp。$ 1; v.line = parseInt(RegExp。$ 2,10);} for(var w in v)(v [w] == null&amp;&amp; delete v [w]); return v;} function q(u,v){return function(){if(!m)return u.apply(this,arguments); try {n = v; return u.apply(this,arguments);} catch(w){if(w instanceof g)throw w; var x = p(w); x.entry = v; var y = ES(Array.prototype.slice.call (论点) ,&#39; map&#39;,true,function(z){var aa = Object.prototype.toString.call(z); return(/ ^ [object(String | Number | Boolean | Object | Date)] $ 。/)试验(AA)Z:?z.toString();}); x.args = ES(&#39; JSON&#39;&#39;字符串化&#39;,假,y)的.substring( 0,200); o(x);} finally {n =&#39;&#39 ;;}};} function r(u){if(!u .__ wrapper)u .__ wrapper = function(){try {return u.apply(this,arguments);} catch(v){window.setTimeout(function(){throw v;},0); return false;}}; return u .__ wrapper;} function s(u,v) {return function(w,x){var y = v +&#39;:&#39; +(n ||&#39; [global]&#39;)+&#39;:&#39; +(w.name ||&#39; [匿名]&#39; +(arguments.callee.caller.name?'('+arguments.callee.caller.name+' )&#39;:&#39;&#39;));返回u(l(w,&#39; entry&#39;,y),x);};} if(m){setTimeout = s (setTimeout,&#39; setTimeout&#39;); setInterval = s(setInterval,&#39; setInterval&#39;); l.setWrapper(q,&#39; entry&#39;);} var t = {后卫:q,unguard:R}; e.exports = T;},NULL);

然后我尝试从

更改代码
  js.src = "http://connect.facebook.net/en_US/sdk.js";

 js.src = "http://connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.1";

 js.src = "http://connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.0";

带来了额外的警告

无效的应用ID:必须是表示应用ID的数字或数字字符串。

FB.init已被调用 - 这可能表示存在问题

和之前的错误相同:

未捕获错误:在sdk.js指定的版本无效:96

此代码有什么问题以及如何简单地初始化或登录Facebook。请告诉我。

1 个答案:

答案 0 :(得分:0)

您是否尝试在init函数中指定版本?

&#13;
&#13;
window.fbAsyncInit = function() {
        FB.init({
          appId      : 'your-app-id',
          xfbml      : true,
          version    : 'v2.1'
        });
      };
&#13;
&#13;
&#13;