【问题标题】:Trouble with <fb:like> page title, like count, and page url<fb:like> 页面标题、点赞数和页面 url 存在问题
【发布时间】:2011-02-18 03:46:28
【问题描述】:

我的网站中有一组使用 FBML 方法插入 FB Recommend 按钮的页面。我的问题是我网站上的每个页面都显示完全相同的推荐计数(“557 人推荐此页面”,即使我刚刚安装了按钮),当我尝试自己推荐时,它会显示在我的新闻提要中使用错误的页面标题、错误的 URL,当然,网站上的每个推荐按钮都会增加。这是我的代码:

og 标签(我用匿名值替换了这些标签,以防止我的客户看起来像一个白痴开发者);):

    <meta property="og:title" content="XXX page title"/>
    <meta property="og:type" content="movie"/>
    <meta property="og:url" content="http://abc.xyz.com/path/to/my/page/"/>
    <meta property="og:site_name" content="XXX site name"/>
    <meta property="fb:admins" content="xxx my facebook id"/>
    <meta property="og:description" content="xxx short description"/>

...然后就在体内:

<body>
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId  : 'xxxxx',
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true  // parse XFBML
    });
  };

  (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>

...然后在页面后面(我使用 FBML 方法的唯一原因是我可以在谷歌分析中跟踪推荐事件——这应该是不相关的,但为了充分披露,我也在此处包含该代码)...

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
        <script type="text/javascript">
            FB.Event.subscribe('edge.create', function(href, widget) {
                _gaq.push(['_trackEvent', '<?php echo $item->type ?>', 'Facebook Recommend', '<?php echo $item->title ?>']);
            });
        </script>
<!-- FB LIKE BUTTON INSERTED HERE -->
        <fb:like href="<?php echo urlencode('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] )?>" show_faces="false" width="450" action="recommend" font="arial" colorscheme="dark"></fb:like>

我的提要中显示的链接是http://abc.xyz.com/path/to/my/(URL 的最后一段丢失了),并且标题是旧的;当我设置它时,我意识到所有页面都有相同的标题,所以我给了它们不同的标题。我已经通过 URL linter 运行了几个 URL,并且没有错误,并且所有数据看起来都是正确的。

【问题讨论】:

    标签: facebook fbml facebook-like


    【解决方案1】:

    这里有两个注意事项:

    1. 由于您使用 URL Linter 检查了多个 URL,结果按预期出现,这意味着这是一个缓存问题,请阅读 this
    2. 如果您没有使用 Facebook Graph API...或任何 Facebook 相关服务(Like Plugin 除外),则不需要第一个 Facebook Javascript 初始化 sn-p,但如果使用它,则不需要 (&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;) .

    编辑:
    根据 cmets,一些页面有超过 50 个赞,这意味着你不能再更改 title

    您可以更新您的属性 通过更新您的页面 标签。注意 og:title 和 og:type 最初只能编辑 - 之后 您的页面收到 50 个喜欢的标题 变得固定,并且在您的页面之后 收到10,000个喜欢的类型变成 固定的。这些属性固定为 避免让喜欢的用户感到惊讶 页面已经。更改标题 或在这些限制之后键入标签 到达什么都不做,你的页面 保留原来的标题和类型。

    source [Editing Meta Tags]

    但是如果您确实需要更改 title 并且您可以可能失去喜欢的次数,那么您可以在末尾添加一个假参数的 URL 元标记,以便 Facebook 认为 这是一个新页面:

    http://www.domain.com/page.php?123
    

    请注意,我从未在新的 Like 插件中使用过这种技术。

    【讨论】:

    • 酷,但我的印象是通过 URL Linter 运行 URL 会清除 FB 的缓存?不是这样吗?
    • 另外——如果我删除了 FB.init sn-p,我还能使用 FB.Event.subscribe 吗?
    • @jessica:我不认为 URL Linter 会清除缓存,如果它是一个页面结构相同(内容不同)的动态网站,那么您需要等待 facebook 清除缓存
    • @jessica:关于你的第二个问题,这取决于你想使用什么事件,如果它与LIKE 相关然后不,请查看answer 了解更多详情
    • @jessica:实际上它得到了更新检查Editing Meta Tags,它有 50 个赞,但你仍然可以做一些事情,通过为受影响的页面添加虚假参数来伪造页面..类似于 ?123
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多