Facebook graph api 为什么我的类似Facebook的按钮会出现这个错误?

Facebook graph api 为什么我的类似Facebook的按钮会出现这个错误?,facebook-graph-api,facebook,facebook-fql,Facebook Graph Api,Facebook,Facebook Fql,为什么??我的代码如下: Uncaught ReferenceError: _onloadHook is not defined //初始化facebook FB.init({ appId:'12345', 状态:true,//检查登录状态 cookie:true,//启用cookie以允许服务器访问会话 xfbml:true,//解析xfbml 频道URL:'http://www.abc.com/channel.html“,//channel.html文件 }); 编辑:当我有多个,这将

为什么??我的代码如下:

Uncaught ReferenceError: _onloadHook is not defined

//初始化facebook
FB.init({
appId:'12345',
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true,//解析xfbml
频道URL:'http://www.abc.com/channel.html“,//channel.html文件
});
编辑:当我有多个,这将发生。当我只有一个“发送”按钮时,错误就不存在了


对于每一个额外的“发送”按钮,就会出现错误。

将Facebook JS库和JS代码脚本放在
fb根目录下
div:

<!DOCTYPE html  xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
    <script type="text/javascript">
    //Initialize facebook
        FB.init({
            appId  : '12345',
            status : true, // check login status
            cookie : true, // enable cookies to allow the server to access the session
            xfbml  : true, // parse XFBML
            channelUrl : 'http://www.abc.com/channel.html', // channel.html file
        });
    </script>
</head>

<body>
<div id="fb-root"></div>
<fb:send href="http://abc.com/blah" font="lucida grande" ref="codes_popup"></fb:send>
<fb:send href="http://abc.com/blah" font="lucida grande" ref="codes_popup"></fb:send>
</body>
</html>

//初始化facebook
FB.init({
appId:'XXX',
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true,//解析xfbml
频道URL:'http://www.abc.com/channel.html“,//channel.html文件
});

我今天遇到了完全相同的错误


正如我们提到的,FB文档说明您需要将FB
标记放在
下。但是,在他的示例和FB文档中,他们将脚本直接放在
下。我一直在这样做,但仍然得到OP提到的错误。通过将FB
标记移动到页面的最底部,就在关闭
标记之前,我终于能够解决这个问题。我相信发生的事情是,我的一些其他脚本干扰了FB脚本的加载。希望有帮助。

您应该使用升级的异步方法调用facebook javascript。这将确保加载整个DOM,以便fb:root已经在页面上


从10月1日起,如果您没有足够的信息,您的应用程序将停止正常工作。

这是Facebook平台上的一个bug;它已经被报告为。

我将它放在document.ready for JQuery中,但它仍然是happening@ifaour:我把它直接放在
fb root
div下面,我得到了与OP相同的错误。它似乎是今天才开始的。它可能是您提到的,也可能是您需要使用的
<!DOCTYPE html  xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<html>
<head>

</head>

<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
//Initialize facebook
    FB.init({
        appId  : 'XXX',
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true, // parse XFBML
        channelUrl : 'http://www.abc.com/channel.html', // channel.html file
    });
</script>
<fb:send href="http://abc.com/blah" font="lucida grande" ref="codes_popup"></fb:send>
</body>
</html>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId  : 'YOUR APP ID',
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true,  // parse XFBML
      channelUrl  : 'http://www.yourdomain.com/channel.html', // Custom Channel URL
      oauth : true //enables OAuth 2.0
    });
  };

  (function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());
</script>
oauth : true