Facebook комментарии к картинкам не работают - PullRequest
1 голос
/ 25 декабря 2011

У меня есть галерея изображений, и я использую fancybox для отображения изображений и навигации между изображениями. Под фотографиями я встроил плагин комментариев на Facebook, чтобы иметь возможность добавлять конкретные комментарии для каждой фотографии. Моя проблема в том, что комментарии, добавленные людьми для конкретной картинки, не отображаются. Однако, если я добавляю комментарий, он появляется, но это только мои комментарии, и они появляются, только если я вошел в Facebook. Кто-нибудь знает, что я могу сделать не так?

URL для галереи 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:

Я также пытался загрузить JavaScript SDK Facebook асинхронно, как описано в справочнике JavaScript SDK разработчиков Facebook, но результат тот же.

Update2:

Я также проверил URL своих изображений, проверив их с помощью firebug. Если я скопирую этот URL-адрес и передам его в качестве параметра для API-интерфейса графа, то в возвращаемом массиве появятся комментарии (см. Комментарии ниже для URL-адреса, который я пробовал через Graph API)

Update3:

Я создал отдельную тестовую страницу, содержащую только изображение и плагин комментариев Facebook под ним. После этого я передал URL отладчику, поэтому он очищает кеш, но безрезультатно. Вот URL-адрес только с изображением + плагин: bass.hr/photodisplay.php?photo=pic_1293187827.jpg

Любые идеи, не обязательно решения также будут высоко оценены.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

разобрался .. похоже, что фейсбук не позволяет новым созданным пользователям оставлять комментарии сразу.Если кто-то столкнется с этим снова, проверьте это также.

0 голосов
/ 25 декабря 2011

Теги XFBML анализируются только при инициализации JS-SDK Facebook по умолчанию (как только DOM готов).И скрытый контент, вероятно, пропущен.Вам нужно вызвать FB.XFBML.parse, как только вы хотите отобразить теги XFBML на странице

Вы можете сделать это для каждого тега на странице или в указанном узле, только передав его в качестве аргумента FB.XFBML.parse method

Обновление: Похоже, что оно на самом деле не связано непосредственно с рендерингом 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 (по какой-то причине настоящая ошибка может быть замечена только иногда в правильном месте, и в большинстве случаев она связана с all.js Facebook *

Uncaught SyntaxError: Неожиданный токен ILLEGAL (photogallery.php: 66)

Обновление 2:

Если комментарии других пользователей не отображаются (или отображаются только для комментариев), это может быть вызвано некоторыми причинами:

  • Модерация включенаd для комментариев
  • Комментарии, опубликованные для тестирования пользователей
  • Для некоторых пользователей, помеченных как спамеры (контролируемые Facebook), комментарии не отображаются
  • Ошибка Facebook (что возможно, но возможноэто не так)

Обновление 3:

Возможно, это ошибка, ее можно отследить http://developers.facebook.com/bugs/117814361658299

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...