在本地实施和测试Facebook社交插件

时间:2012-01-27 15:13:33

标签: html facebook facebook-social-plugins facebook-comments

我是Facebook开发的新手,想在我的网站上添加评论插件 我已经在Facebook上创建了一个应用程序,以备不时之需。但由于我尚未注册我的域名,因此我将App Domain部分留空了 然后我复制了给我的代码:http://developers.facebook.com/docs/reference/plugins/comments/来测试插件。但是,当我在html文件中测试代码时,没有任何显示。

  • 我是否需要appid才能使用评论插件?
  • 如果我需要appid,我应该首先购买域名并将其添加到App Domain部分吗?我可以使用example.com网址测试插件吗?
  • 一般来说,获取评论插件的最基本方法是什么?

更新: 基于Lix的回答,我编辑了我的hosts文件并添加了:

127.0.0.1 www.example.com
127.0.0.1 example.com
127.0.0.1 http://www.example.com
127.0.0.1 http://example.com

这是我的测试页面:

<html>
<head>
  <title>My Web page</title>
</head>
<body>
    <div id="fb-root"></div>
    <script>(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 = "//connect.facebook.net/en_US/all.js#xfbml=1";
        fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>
    <div class="fb-comments" data-href="http://example.com" data-num-posts="2" data-width="470"></div>
</html>  

但仍然没有运气。

2 个答案:

答案 0 :(得分:3)

据我所知,你需要一个App来使用Comments插件(我相信的审核功能)。如果您查看评论框的code Facebook generates,您会看到它有一个应用ID:

<div id="fb-root"></div>
<script>(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 = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=MY_APP_ID"; // <-- here
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

要让您的应用在本地正常运行,您需要设置虚拟主机。我通常使用http://website1.dev等名称设置它们。

正如Lix所提到的,设置虚拟主机的

部分正在将域添加到您的hosts文件以解析为您的localhost(127.0.0.1)。

另一个部分是在您网站的本地Web服务器上创建虚拟主机。这样,您实际上是在http://example.com而非localhost/example.com的浏览器中访问本地网站。有很多关于如何设置Apache来做这篇文章的好文章,这里有两篇:

然后,确保您的Facebook应用管理员设置已正确设置为允许http://example.com域。当您设置应用程序“网站”时,您必须指定“网站URL”。您还可以将新的本地域添加为应用程序“App Domain”。

上帝好运!

答案 1 :(得分:2)

您可以做的是编辑您的主机文件以包含您的“虚假”本地域并将该值放在那里。