0

我从未在开发人员级别与 Facebook 打过交道,我确信我在这里做的事情很明显是错误的。无论如何,这是问题所在:

我从https://developers.facebook.com/docs/reference/plugins/like/生成了类似的按钮代码,然后将其复制到我的页面中。当我尝试查看该站点时,我什么也没有显示。

我注意到脚本部分中的 url 未能包含协议(它出现:“//connect.facebook.net/en_US/all.js#appId=207642302633270&xfbml=1”)。当我查看使用 Firebug 发生了什么时,我可以看到它正在将script标签插入到 head 部分 - 但 URL 不起作用。我尝试修改它以将“https:”作为协议包含在内,然后我看到脚本被加载,并且它还在头部部分插入了一堆 CSS。

但网站上仍然没有显示任何内容。

我能想到的唯一可能有问题的是我(或者,更具体地说,我的客户)没有任何类型的 Facebook 公司资料 - 如果需要,我可以要求他们设置一个,但这不会是首选选项,因为他们不想为企业维护 Facebook 个人资料。

这是我正在使用的精简示例:

<html>
    <head>
        <title>Testing the Like Button</title>
        <meta property="og:title" content="Company FB Test" />
        <meta property="og:type" content="company" />
        <meta property="og:url" content="http://www.domain.com/fb-test.html" />
        <meta property="og:image" content="http://www.domain.com/logo.png" />
        <meta property="og:site_name" content="Site Name" />
        <meta property="fb:admins" content="__MY_FB_ID__" />
    </head>
    <body>
        <script>(function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "https://connect.facebook.net/en_US/all.js#appId=207642302633270&xfbml=1";
            d.getElementsByTagName('head')[0].appendChild(js);
        }(document));</script>
        <div class="fb-like" data-send="false" data-layout="box_count" data-width="67" data-show-faces="false" data-font="arial"></div>
    </body>
</html>

几点注意事项:

  1. 该示例包括协议“https:” - 如前所述,我也尝试过。
  2. 这已经在 Chrome 13、Firefox 6 和 IE 9 的最新版本中进行了测试
  3. 我已经在 Facebook Lint 中对此进行了测试,它没有给我任何错误。

预先感谢任何成功地指出对我来说显而易见的人 - 以及任何其他提出任何友好建议的人。

干杯,扎克

4

1 回答 1

1

您需要确保在页面中的某处添加此代码:

<div id="fb-root"></div>

您将在 chrome 调试器工具中看到一个错误,说它找不到那个 div。

于 2011-09-09T22:10:00.340 回答