Кнопка «Мне нравится» не отображается - PullRequest
0 голосов
/ 10 сентября 2011

Никогда не имея дело с Facebook на уровне разработчика, я уверен, что я делаю что-то совершенно очевидно здесь неправильно. В любом случае, вот проблема:

Я генерирую код кнопки «Мне нравится» из https://developers.facebook.com/docs/reference/plugins/like/, а затем копирую его на мою страницу. При попытке просмотра сайта ничего не отображается.

Я заметил, что URL-адрес в разделе сценариев не включает протокол (он поставляется с: "//connect.facebook.net/en_US/all.js#appId=207642302633270&xfbml=1"). Когда я смотрю, что происходит с помощью Firebug, я вижу, что он вставляет тег script в раздел head - но URL не работает. Я попытался изменить его так, чтобы он включал «https:» в качестве протокола, и затем я вижу, что скрипт загружается и что он также вставляет кучу CSS в раздел head.

Но на сайте все еще ничего не отображается.

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

Вот урезанный образец, с которым я работаю:

<html>
    <head>
        <title>Testing the Like Button</title>
        <meta property="og:title" content="Company FB Test" />
        <meta property="og:type" content="company" />
        <meta property="og:url" content="http://www.domain.com/fb-test.html" />
        <meta property="og:image" content="http://www.domain.com/logo.png" />
        <meta property="og:site_name" content="Site Name" />
        <meta property="fb:admins" content="__MY_FB_ID__" />
    </head>
    <body>
        <script>(function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "https://connect.facebook.net/en_US/all.js#appId=207642302633270&xfbml=1";
            d.getElementsByTagName('head')[0].appendChild(js);
        }(document));</script>
        <div class="fb-like" data-send="false" data-layout="box_count" data-width="67" data-show-faces="false" data-font="arial"></div>
    </body>
</html>

Пара заметок:

  1. Пример включает протокол «https:» - как уже упоминалось, я тоже пробовал без него.
  2. Это было протестировано в последних версиях Chrome 13, Firefox 6 и IE 9
  3. Я проверял это в Facebook Lint, и это не дает мне ошибок.

Заранее благодарен тому, кому удастся указать на очевидное для меня, - и всем, кто дает дружеский совет.

Ура, Zac

1 Ответ

1 голос
/ 10 сентября 2011

Вы должны обязательно добавить этот код где-нибудь на своей странице:

<div id="fb-root"></div>

В инструменте chrome debugger вы увидите ошибку, сообщающую, что он не может найти этот div.

...