简体   繁体   English

Facebook JavaScript Java SDK基本登录或初始化错误

[英]Facebook javascript sdk basic login or initialization error

I have following code mostly copy pasted from https://developers.facebook.com . 我下面的代码主要是从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>

When I execute this code I get following error:- 当我执行此代码时,出现以下错误:-

Uncaught Error: invalid version specified sdk.js:96 (anonymous function) 未捕获的错误:无效版本指定为sdk.js:96(匿名函数)

Line from sdk.js:96 :- 来自sdk.js:96的行:-

__d("sdk.ErrorHandling",["ManagedError","sdk.Runtime","sdk.Scribe","sdk.UA","sdk.feature","wrapFunction"],function(a,b,c,d,e,f,g,h,i,j,k,l){b.__markCompiled&&b.__markCompiled();var m=k('error_handling',false),n='';function o(u){var v=u._originalError;delete u._originalError;i.log('jssdk_error',{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,stack:u.stackTrace||u.stack};v._originalError=u;if(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&&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(arguments),'map',true,function(z){var aa=Object.prototype.toString.call(z);return (/^[object (String|Number|Boolean|O __d(“ sdk.ErrorHandling”,[“ ManagedError”,“ sdk.Runtime”,“ sdk.Scribe”,“ sdk.UA”,“ sdk.feature”,“ wrapFunction”],function(a,b,c, d,e,f,g,h,i,j,k,l){b .__ markCompiled && b .__ markCompiled(); var m = k('error_handling',false),n ='';函数o(u){ var v = u._originalError;删除u._originalError; i.log('jssdk_error',{appId:h.getClientID(),error:u.name || u.message,extra:u});抛出v;}函数p(u){var v = {line:u.lineNumber || u.line,message:u.message,name:u.name,script:u.fileName || u.sourceURL || u.script,stack :u.stackTrace || u.stack}; v._originalError = u; if(j.chrome()&& /([\\ w:./] +。js):(\\ d +)/。test(u.stack )){v.script = RegExp。$ 1; v.line = parseInt(RegExp。$ 2,10);} for(var in v)(v [w] == null && delete v [w]); return v;}函数q(u,v){返回函数(){if(!m)返回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(arguments),'map',true,function(z){ var aa = Object.prototype.toString.call(z); return(/ ^ [object(String | Number | Boolean | O bject|Date)]$/).test(aa)?z:z.toString();});x.args=ES('JSON','stringify',false,y).substring(0,200);o(x);}finally{n='';}};}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+':'+(n||'[global]')+':'+(w.name||'[anonymous]'+(arguments.callee.caller.name?'('+arguments.callee.caller.name+')':''));return u(l(w,'entry',y),x);};}if(m){setTimeout=s(setTimeout,'setTimeout');setInterval=s(setInterval,'setInterval');l.setWrapper(q,'entry');}var t={guard:q,unguard:r};e.exports=t;},null); bject | Date)] $ /)。test(aa)?z:z.toString();}); x.args = ES('JSON','stringify',false,y).substring(0,200); o (x);}最后{n ='';}};}函数r(u){if(!u .__ wrapper)u .__ wrapper = function(){尝试{返回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 +':'+(n ||'[global]')+':'+(w.name ||'[匿名]'+(arguments.callee.caller.name?'('+arguments.callee .caller.name +')':''));返回u(l(w,'entry',y),x);};} if(m){setTimeout = s(setTimeout,'setTimeout'); setInterval = s(setInterval,'setInterval'); l.setWrapper(q,'entry');} var t = {guard:q,unguard:r}; e.exports = t;},null);

Then I tried to changed code from 然后我试图从

  js.src = "http://connect.facebook.net/en_US/sdk.js";

to

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

or 要么

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

which brings additional warnings 带来其他警告

Invalid App Id: Must be a number or numeric string representing the application id. 无效的应用程序ID:必须是代表应用程序ID的数字或数字字符串。

FB.init has already been called - this could indicate a problem FB.init已被调用-这可能表明有问题

and same previous error: 和以前的错误:

Uncaught Error: invalid version specified at sdk.js:96 未捕获的错误:在sdk.js指定的版本无效:96

What is wrong with this code and how to just simply initialize or log in to facebook. 这段代码有什么问题,以及如何简单地初始化或登录到Facebook。 Please let me know. 请告诉我。

Have you tried to specify the version in the init function? 您是否尝试在init函数中指定版本?

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM