Подтвердить что ты не робот

Facebook Мне нравится, что кнопка не работает все время

Я использовал следующий код для реализации подобной кнопки:

Заголовок

<!-- Facebook Metatags -->
<meta property="og:image" content="http://mysite/logo.gif"/>
<meta property="og:locality" content="mycity"/>
<meta property="og:country-name" content="Germany"/>
<meta property="og:latitude" content="52.xxxxxxx"/>
<meta property="og:longitude" content="9.xxxxxxx"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="mypage.com"/>
<meta property="og:url" content="http://mypage.de/myproduct/myproductkey"/>
<meta property="og:title" content="Myproduct Description"/>

Тело на mypage.de/myproduct/myproductkey

<div id="facebook-likebox">
<script src="http://connect.facebook.net/de_DE/all.js#xfbml=1"></script>
<fb:like href="#" onclick="location.href='http://mypage.de/myproduct/myproductkey'; return false;" width="450" height="90" show_faces="false"></fb:like>
</div>

Результат несовместим: большую часть времени он работает, но иногда я получаю эту ошибку:

Вам не удалось предоставить действительный список Админы. Вам необходимо предоставить администраторы, использующие \ "fb: app_id \" или используя \ "fb: admins \", чтобы указать Список разделов с разделителями-запятыми пользователей.

Эта ошибка не имеет смысла, потому что когда я вызываю страницу позже или кто-то еще вызывает страницу, она снова работает. Любая идея, что здесь не так.

ИЗМЕНИТЬ

Я обновил сайт с помощью этих метатег

<meta property="fb:admins" content="xxx"/>
<meta property="fb:app_id" content="xxx"/>

Я проверил идентификаторы на https://graph.facebook.com/xxx

Но иногда я получаю ошибки. Новая ошибка:

Идентификатор приложения "xxx" в метатеге "fb: app_id" недействителен.

Но большую часть времени все работает. Кто-нибудь знает, как решить эту проблему?

РЕДАКТИРОВАТЬ 1

Наш сайт использует балансировщик нагрузки и имеет множество внешних скриптов (E-Tracker и другие решения для отслеживания)

РЕДАКТИРОВАТЬ 2

Мы использовали LINT https://developers.facebook.com/tools/lint/, чтобы проверить страницу

Он дает когда-то ошибку (недопустимый app_id) и иногда возвращается как действительный. Но идентификатор приложения из мета-тегов всегда анализируется правильно, и это действительный идентификатор приложения.

4b9b3361

Ответ 1

Оказывается, причиной непоследовательного поведения был loadbalancer. Мы дезактивировали балансировку нагрузки, и LINT всегда показывал согласованные результаты.

Я понятия не имею, что изменилось балансировка нагрузки. Мета-теги аналогичны.

Я использовал admins-metatag. Мне не нужно было использовать тег app-id. Вот как это написано в спецификации.

Ответ 2

Плагин Facebook Like Plugin требует шести атрибутов при использовании метатегов открытого графика:

  • og:title - название объекта.
  • og:type - тип объекта. Вы должны выбрать тип из списка типов Open Graph.
  • og:image - URL-адрес изображения, представляющего объект. Изображения должны быть не менее 50 пикселей на 50 пикселей. Квадратные изображения работают лучше всего, но вам разрешено использовать изображения в три раза шире, чем они высоки.
  • og:url - канонический, постоянный URL-адрес страницы, представляющей объект. Когда вы используете теги Open Graph, кнопка Like ссылается на ссылку og: ur вместо URL-адреса в коде кнопки Like.
  • og:site_name - Человеко-читаемое имя для вашего сайта, например, "IMDb".
  • fb:admins или fb:app_id - список, разделенный запятыми либо идентификаторами Facebook администраторов страниц, либо идентификатором приложения платформы Facebook. Как минимум, укажите только свой собственный идентификатор Facebook.

Итак, просто добавьте свой идентификатор в facebook:

<meta property="fb:admins" content="your_FB_ID"/>

Ответ 3

Я потратил пару часов на эту взорванную кнопку Like, но она, наконец, работает на меня! Я добавил свойства admin_id и app_id и по-прежнему отмечен ту же ошибку.

Вот список проверок, чтобы убедиться, что у вас есть то, что вам нужно.

1) Тип Doc, вероятно, неверен. Я не могу вспомнить, где я получил эту информацию, но вместо этого использую это:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

2) Вам нужно импортировать пространства имен XML. Измените свой тег HTML на что-то вроде этого:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml">

Я использовал HTML5 script на своем веб-сайте. Итак, вот копия-макароны для вашей справки.

<?php $current_url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]; ?>
<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_GB/all.js#xfbml=1&appId=YOUR_APP_ID";
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-like" data-href="<?php echo $current_url; ?>" data-send="false" data-layout="button_count" data-width="80" data-show-faces="false"></div>

Кроме того, для распространения требуется несколько минут. Я ждал 15 минут и вдруг... это сработало.

Ответ 4

Я нашел решение!

проблема в URL-адресе, это должно быть:

<meta property="og:url" content="http://www.yoursite.com/index.php" />

Я использовал это, и он работает