【问题标题】:How to migrate Facebook comments from using "URL" property to "HREF"如何将 Facebook 评论从使用“URL”属性迁移到“HREF”
【发布时间】:2012-01-15 01:46:15
【问题描述】:

非常感谢任何人对我在 Facebook 评论插件系统中遇到的问题提出的任何意见。

基本上,我们创建了一个去年推出的 Wordpress 主题,并使用旧的遗留 FMBL 来集成 facebook cmets。引入 cmets 的代码类似于:

<div id="fb-root" style="padding-top:8px;">
</div>
<script src="http://connect.facebook.net/en_US/all.js#appId=<?php
          echo $facebookappid; ?>&amp;xfbml=1"></script>
<fb:comments
    URL="<?php the_permalink() ?>"
    xid="<?php echo $post->ID; ?>"
    publish_feed="true"
    migrated="1"
    reverse="false"
    numposts="20"
    width="620">
</fb:comments>

现在的问题是,我们的一些网站上出现以下错误:

--

警告:此 cmets 插件在兼容模式下运行,但还没有帖子。考虑按照 cmets 插件文档中的建议指定显式“href”以利用所有插件功能。

--

我已尝试将 URL 值更改为 HREF,这解决了问题,但也删除了网站上所有以前的 facebook cmets。似乎在旧系统下,它们并没有有效地发布到 Facebook。

有谁知道我们可以将 cmets 从旧系统迁移到新系统的方法(迁移功能在这种情况下不起作用)。

【问题讨论】:

    标签: html facebook-graph-api comments


    【解决方案1】:

    您需要将其更改为新的 html 格式,检查 Social Plugins 页面以生成 Comment Box 的 HTML 代码。它看起来像这样:

    <div class="fb-comments"
         data-href="http://example.com"
         data-num-posts="2"
         data-width="500">
    </div>
    

    可能没有出现 cmets 的原因,可能是 data-href 与旧的不同,尝试尽可能地匹配旧值,您会看到 cmets 回来了。

    【讨论】:

    • 感谢您的回复 Evgeny。我不确定您对尽可能接近地匹配旧数据-href 的意思是什么?据我所知,问题在于我们的旧代码使用了 URL 函数,但现在我们被告知我们需要使用 HREF 函数,但这样做并没有引入旧的 cmets
    • 我的错。根据developers.facebook.com/docs/reference/fbml/comments_(XFBML) 的引用,它是引用 cmets 流的“xid=123456”参数,而不是 href 参数。因此,带有永久链接的 data-href 自然不会显示旧的 cmets。
    【解决方案2】:

    问题就在于此。 Facebook从评论插件的第一个版本过渡到第二个版本时提供了迁移功能,现在它在第三个版本中完全被淘汰了。但问题是,在第二个版本中使用“migrate=1”选项时生成的 cmets 在您切换到新版本时会丢失(以消除警告)。

    如果他们没有在第二个化身中切换到 href rag,那么与博客/cms 等的集成现在正在失去 cmets,因为他们不想在第一轮中失去原始 cmets使用插件。

    有没有人通过 XID 从旧代码中提取 cmets 的有效查询?至少我们可以将它作为插件包含在新评论插件下方,以便在底部添加任何旧的 cmets。

    编辑: 所以我记得当第一个插件问世时,Gil 制作的论坛上有一个评论管理器工具。论坛仍然(大部分)可以访问,所以我浏览了一下,他已经删除了它。如果我记得的话,我记得有一种方法可以循环通过 XID 提取您的所有评论。

    我将尝试挖掘/模拟翻拍它,我们至少可以有一些东西拉动 cmets,以便我们可以参考它们。我认为这完全取决于 XID 的存储方式。我记得将我的 href(在 href 是一个选项之前)存储为 XID,因为我知道它是独一无二的。但是现在当我尝试通过 cmets.get 测试工具进行查找时,它给出了关于 XID 格式的错误,所以我担心他们实际上可能已经将旧的 http:// 数据捣碎/清理了。

    至少可以说令人沮丧,但不是唯一一次在没有警告或任何真正的思考过程的情况下发生变化。

    【讨论】:

    • Michael 我也遇到了完全相同的情况——之前从 v1 迁移到 v2 但没有更改为 href(因为我不想失去我原来的 cmets)。我已经尝试过 expr:xid="data:post.id" (对于我的 wordpress 网站),但这似乎也不起作用 - 所以我正在寻找某种方法,我们可以采用旧的 cmets 并将它们推送到新的href系统
    • 那么真的没有办法将所有现有的 cmets 从 xid 迁移到基于 href 的版本吗? Facebook 表示 FBML 将于 6 月 1 日被删除 (bit.ly/i5lQ1b) 那么这是否意味着大约四个星期内我们所有的旧 xid-cmets 都将丢失?
    【解决方案3】:

    目前没有解决方法。您有 2 个选择:如果您使用 migrated=1 添加新的 href 或旧的 xid 参数,您将丢失所有以前的 cmets,您将摆脱错误。或者您将保留旧版本的评论框,下面有数千个旧的 cmets 和黄色错误框...欢迎来到 Facebook 世界的家伙... 6 个月后他们可能会更正它...这里没有第三方手可以做的事情... :(

    【讨论】:

      【解决方案4】:

      问题尚未解决,但已经取得了一些进展,请参阅此帖子:How do I remove a facebook comment warning?

      【讨论】:

      • 我不会称之为“进步”——这只是一个临时解决方法,如果还没有 cmets,它将使用 XFBML。它确实将旧的 cmets 迁移到了新系统。
      猜你喜欢
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2013-02-04
      • 2012-07-29
      • 2011-11-04
      • 2013-08-20
      相关资源
      最近更新 更多