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) и иногда возвращается как действительный. Но идентификатор приложения из мета-тегов всегда анализируется правильно, и это действительный идентификатор приложения.
Ответы
Ответ 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" />
Я использовал это, и он работает