У меня есть страница Joomla (v3.2.4), где я помещаю некоторые динамические теги Open Graph с PHP, например:
PHP, перед тегом:
$getcid = JRequest::getVar('id'); if(!isset($getcid)) { $title = "LIVA Kurser"; $description = "Danmarks største udbyder af kurser til såvel offentlige og erhverv samt private."; $image = "http://img.ruphp.com/php/liva-logo.jpg"; $type = "website"; } else { $db = JFactory::getDbo(); $user = JFactory::getUser(); $query = $db->getQuery(true); $ogquery = "SELECT DISTINCT * FROM jos_managecourse WHERE state = '1' AND id = '".$getcid."' LIMIT 1"; $db->setQuery($ogquery); $db->query(); $getcourse = $db->loadObjectList(); $description = substr(strip_tags($getcourse[0]->details), 0, 247); $title = $getcourse[0]->course_name; $description = preg_replace( "/\r|\n/", "", $description ); $description = str_replace( " ", " ", $description ); $image = JURI::root()."administrator/components/com_managecourse/images/".$getcourse[0]->image_url; $type = "article"; }
И в моем теге у меня есть это:
<!-- Facebook Open Graph --> <meta property="fb:app_id" content="502033806595590" /> <meta property="og:site_name" content="LIVA Kurser" /> <meta property="og:type" content="<?php echo $type; ?>" /> <meta property="og:title" content="<?php echo $title; ?>" /> <meta property="og:url" content="<?php echo JURI::current(); ?>" /> <meta property="og:image" content="<?php echo $image; ?>" /> <meta property="og:description" content="<?php echo $description; ?>..." /> <!-- End Facebook Open Graph -->
Когда я запускаю страницу через отладчик объектов Facebook , я получаю следующие две ошибки:
Объект по URL-адресу « http://www.livakursertestsite.dk/kurser/babytegn-2 » типа «веб-сайт» недействителен, поскольку не было указано требуемое свойство «og: title» типа «строка».
И вторая ошибка:
Ошибка скручивания: BAD_CONTENT_ENCODING Ошибка при обработке unencoding: недопустимый тип блока
Я пытался:
Вы можете посмотреть сайт здесь: http://www.livakursertestsite.dk/kurser/babytegn-2
РЕДАКТИРОВАТЬ:
Я удалил PHP-код из тегов, поэтому они больше не являются динамическими, чтобы убедиться, что это было причиной, но это не так. Теперь код выглядит следующим образом:
<meta property="og:locale" content="da_DK" /> <meta property="og:type" content="website" /> <meta property="og:title" content="LIVA Kurser" /> <meta property="og:description" content="Beskrivelse..." /> <meta property="og:url" content="http://www.livakursertestsite.dk/kurser" /> <meta property="og:image" content="http://img.ruphp.com/php/liva-logo.jpg" /> <meta property="fb:app_id" content="502033806595590" /> <meta property="og:site_name" content="LIVA Kurser" />
Я также попробовал:
И отладчик Facebook все еще не может получить данные.
Редактировать # 2:
После комментария @CBroe я исправил страницу, чтобы ее можно было проверить, без ошибок, но все равно не повезло.
Возможно, вы захотите отключить любое сжатие, например сжатие GZIP в PHP. Это помогло мне с аналогичной проблемой на веб-сайте Joomla 3.3.
У меня было сжатие GZIP, и Facebook не смог очистить мой сайт. Отказ от сжатия GZIP решил эту проблему.
Я еще не понял, если это проблема Joomla или проблема GZIP / PHP вообще или проблема с копией facebook.
EDIT: с акцией акции Facebook только читает первые 40k вашей страницы. Когда GZIP включен, чтение только первых 40k даст проблемы, поскольку оно не способно распаковать частичное содержимое.
Лучшим решением было бы отключить GZIP только для таких сайтов, как Facebook, LinkedIn и т. Д.
Вы можете использовать небольшой плагин gzip очень дружелюбный. Управление: http://extensions.joomla.org/extensions/core-enhancements/performance/site-performance/27725.
Или используйте этот codee https://github.com/dgt41/ (zip файл xml и php, и вы можете установить его как плагин)
Обратите внимание: если на вашем сайте установлен модуль JCH Optimize, вам необходимо отключить сжатие gzip, предлагаемое плагином. Все остальные параметры могут оставаться включенными без каких-либо проблем, включая самозагружаемое сжатие Joomla gzip.
Привет, Teeuwis
Я нашел решение проблемы в joomla 3, изменяя только 2 файла из ядра joomla, поэтому вам не нужно отключать опцию GZIP. Автоматически отключается только при обнаружении искателя facebook.
https://github.com/dgt41/joomla-cms/commit/6eef42e50e3f3e4c78c93285de7f9ecfe8bbfbf5 и плагин для решения проблемы, но этот не работает нормально для меня.
https://github.com/dgt41/facebookfix/commit/e1d5aa3a1a94f7751d3b69db78ba1aa02dfc37c6