Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 已调用FB.init-这可能表明_Facebook_Facebook Like - Fatal编程技术网

Facebook 已调用FB.init-这可能表明

Facebook 已调用FB.init-这可能表明,facebook,facebook-like,Facebook,Facebook Like,我有一个facebook按钮没有SDK: <fb:like href="<%= @canonical_url %>" send="" layout="button_count"></fb:like> <div id="fb-root"> </div> <script> // facebook recommend button window.fbAsyncInit = functio

我有一个facebook按钮没有SDK:

<fb:like href="<%= @canonical_url %>" send="" layout="button_count"></fb:like>
     <div id="fb-root"> </div>
     <script>
      // facebook recommend button
      window.fbAsyncInit = function() {
         FB.init({appId: 'myappid', status: true, cookie: true, xfbml: true});
      };
      (function() {
        // delay to simulate slow loading of Facebook library - remove this setTimeout!!
        var t = setTimeout(function() {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol + '//connect.facebook.net/<%= locale_og_tag %>/all.js';
            document.getElementById('fb-root').appendChild(e);
        }, 0);
      }());
      </script>
  </div>
但我进入控制台:

FB.init has already been called - this could indicate a problem
如何解决此问题?


谢谢大家!

您已经使用window.fbasyninit调用了FB.init,并且已经在第一个代码块中加载了FB脚本


这意味着您应该删除第二个代码块,您应该会没事。

您已经用window.fbasyninit调用了FB.init,并且已经在第一个代码块中加载了FB脚本


这意味着您应该删除第二个代码块,您应该没事。

正在调用
FB.init()
两次。。。您可能需要注意该错误消息的建议:P


你只需要调用它一次,如果没有加载SDK,你就不能调用它,所以,你必须有SDK。您可以调用
FB.init()
来设置参数,例如
app\u id
,是否在初始化过程中呈现
xfbml

那么您正在调用
FB.init()
两次。。。您可能需要注意该错误消息的建议:P


你只需要调用它一次,如果没有加载SDK,你就不能调用它,所以,你必须有SDK。您可以调用
FB.init()
来设置参数,例如
app\u id
,是否在初始化过程中呈现
xfbml

您有三个init调用-两个通过
FB.init
显式调用,一个通过
。/all.js#xfbml=1
隐式调用。删除
#xfbml=1
部分以及
FB.init
s中的任何一个,您应该很好。

您有三次对init的调用-两次通过
FB.init
显式调用,一次通过
隐式调用。/all.js#xfbml=1
。删除
#xfbml=1
部分以及
FB.init
s中的任何一个,您应该很好。

只需将登录表单与其他页面分开即可。因此,您不需要多次加载FB.init()。

只需将登录表单与其他页面分开即可。因此,您不需要多次加载FB.init()。

也许它会对其他人有所帮助,比如我,他们有类似标题的问题,并且没有找到解决方案

Facebook的文档有误,举个例子:

<script crossorigin="anonymous" src="https://connect.facebook.net/pl_PL/sdk/debug.js#xfbml=1&version=v7.0&appId={your app id}&autoLogAppEvents=1"></script> <script> window.fbAsyncInit = function() { FB.init({ appId : '{your app id}', cookie : true, xfbml : true, version : 'v7.0' }); FB.AppEvents.logPageView(); FB.getLoginStatus(function(response) { console.log(response); }); }; </script> window.fbAsyninit=函数(){ FB.init({ appId:“{your app id}”, 曲奇:是的, xfbml:是的, 版本:“v7.0” }); FB.AppEvents.logPageView(); FB.getLoginStatus(函数(响应){ 控制台日志(响应); }); }; 但这是错误的,因为在facebook脚本的url中,已经有人初始化了FB对象(给出了应用程序id)

这就是为什么需要选择这种方法:

  • 或者在不提供应用程序id的情况下包含facebook脚本,然后明显地调用FB.init(…)
  • 或者包含带有应用id的facebook脚本,然后省略调用FB.init(…)

也许这会对其他人有所帮助,比如我,他们有类似于头衔的问题,并且没有找到解决方案

Facebook的文档有误,举个例子:

<script crossorigin="anonymous" src="https://connect.facebook.net/pl_PL/sdk/debug.js#xfbml=1&version=v7.0&appId={your app id}&autoLogAppEvents=1"></script> <script> window.fbAsyncInit = function() { FB.init({ appId : '{your app id}', cookie : true, xfbml : true, version : 'v7.0' }); FB.AppEvents.logPageView(); FB.getLoginStatus(function(response) { console.log(response); }); }; </script> window.fbAsyninit=函数(){ FB.init({ appId:“{your app id}”, 曲奇:是的, xfbml:是的, 版本:“v7.0” }); FB.AppEvents.logPageView(); FB.getLoginStatus(函数(响应){ 控制台日志(响应); }); }; 但这是错误的,因为在facebook脚本的url中,已经有人初始化了FB对象(给出了应用程序id)

这就是为什么需要选择这种方法:

  • 或者在不提供应用程序id的情况下包含facebook脚本,然后明显地调用FB.init(…)
  • 或者包含带有应用id的facebook脚本,然后省略调用FB.init(…)

简单-不要调用
FB.init()
两次。。。而且你已经加载了SDK——否则你就不能调用
FB.init()
@fra了——实际上我应该把VTC称为“太本地化了”。。。但既然你问得这么好……;)简单-不要调用
FB.init()
两次。。。而且你已经加载了SDK——否则你就不能调用
FB.init()
@fra了——实际上我应该把VTC称为“太本地化了”。。。但既然你问得这么好……;)顺便问一下,#xfbml=1的含义是什么?我的用法就是这样。谢谢Sean顺便问一下#xfbml=1的含义是什么?我的用法就是这样。谢谢,肖恩