Facebook对图片的评论不起作用

时间:2011-12-25 18:24:13

标签: php javascript facebook facebook-graph-api fancybox

我有一个图片库,我使用fancybox显示图片,并在图片之间导航。在图片下方,我整合了facebook评论插件,以便能够为每张图片添加部分特定评论。 我的问题是人们为特定图片添加的评论不会出现。但是,如果我添加评论它确实显示,但这些只是我的评论,它们只有在我登录到Facebook时才会出现。有没有人知道我能做错什么?

facncybox图库的网址为:http://www.bass.hr/photogallery.php?album=17 对于Facebook评论集成,我使用从https://developers.facebook.com/docs/reference/plugins/comments/生成的代码。

这是我的代码:

<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=196368707123454";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>

<div id="fancybox_container" style="display:none;">
    <?php
    foreach ($Imgs as $key => $i) {
    ?>
            <div id="inline_<?php echo $key;?>" style="width:500px;">
                <img id="fancyboxContentImage" src="<?php echo $target.$i['filename']; ?>" />
                <div style="margin-top:20px;">
                    <fb:comments href="http://www.bass.hr/<?php echo $target.$i['filename'];?>" num_posts="2" width="450"></fb:comments>
                </div>
            </div>
            <a class="grouped_elements" href="#inline_<?php echo $key;?>" rel="group" ></a>
    <?php
    }
    ?>
</div>

<script type="text/javascript">

$(window).load(function(){
    $("a.grouped_elements").fancybox({
        openEffect   : 'fade',
        closeEffect  : 'fade',
        nextEffect   : 'fade',
        prevEffect   : 'fade',
        mouseWheel   : 'true',
        width        :  520,
        height       :  400,
        autoSize     : 'true',
        fitToView    : 'true',
        type         : 'inline',
        scrolling    : 'yes',
        padding      : 10,
        afterShow    :function() {
            var referenceHeight = $('div.fancybox-inner div img').height()+15;
            $('.fancybox-prev, .fancybox-next').css('height', referenceHeight+'px');
        }
    });
    $("#fancybox_container a.grouped_elements:first").click();
});
</script>

UPDATE1:

我还尝试异步加载facebook JavaScript SDK,就像facebook开发人员JavaScript SDK参考中描述的那样,但结果相同。

UPDATE2:

我还用萤火虫检查了我的图像的网址。如果我复制该url并将其作为参数提供给图形api,则返回的数组中会有注释(请参阅下面的注释,我通过图形api尝试了网址)

UPDATE3:

我创建了一个sepparate测试页面,其中只包含图像和facebook评论插件。之后我将url传递给调试器,因此它会刷新缓存,但没有结果。 这是只有图像+插件的网址: bass.hr/photodisplay.php?photo=pic_1293187827.jpg

任何想法,不一定是解决方案也会有很多不足之处。

提前致谢。

2 个答案:

答案 0 :(得分:0)

XFBML标签默认情况下仅在Facebook JS-SDK初始化时解析(一旦DOM准备就绪)。隐藏的内容可能会被跳过。一旦要将XFBML标记呈现到页面

,就需要调用FB.XFBML.parse

您只能通过将其作为参数传递给FB.XFBML.parse方法

,对页面上或指定节点中的每个标记执行此操作

<强>更新 看起来它与XFBML渲染没有直接关系,而是传递给onload函数的文件名中的某个字符阻止FB.XFBML在页面上加载(这就是为什么任何XFMBL标签都没有呈现),有线它只发生在Chrome / Chromium上,而不发生在Safari上(两者都经过测试)。

<body class="background_main" style="background-image: url(../Images/blackjack3.jpg);" onload="MM_preloadImages('Images/home2.png','Images/o
nama2.png','Images/photogallery2.png','Images/forum2.png','Images/news2.png','Images/kontakt2.png')">

这是我在Chromium中看到的错误(出于某种原因,真正的错误只能在正确的地方看到,而且大部分时间都归因于Facebook的all.js)

  

Uncaught SyntaxError:意外的令牌ILLEGAL(photogallery.php:66)

更新2:

如果未显示其他用户发布的评论(或仅显示评论发布),则可能是某些原因:

  • 审核已启用审核
  • 评论发布为测试用户
  • 对于标记为垃圾邮件发送者的某些用户(由Facebook控制),不会显示评论
  • Facebook错误(这可能但可能不是一个案例)

更新3:

这可能是错误,可能会在http://developers.facebook.com/bugs/117814361658299

上进行跟踪

答案 1 :(得分:0)

想通了..似乎facebook不允许新创建的用户立即发表评论。如果有人再遇到这个,请检查一下。