Php Facebook开放图形,必需属性';og:标题';类型为';字符串';没有提供

Php Facebook开放图形,必需属性';og:标题';类型为';字符串';没有提供,php,html,facebook,facebook-graph-api,joomla,Php,Html,Facebook,Facebook Graph Api,Joomla,我有一个Joomla页面(v3.2.4),其中我使用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" conten

我有一个Joomla页面(v3.2.4),其中我使用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://www.livakursertestsite.dk/images/liva-logo.jpg" />
<meta property="fb:app_id" content="502033806595590" />
<meta property="og:site_name" content="LIVA Kurser" />
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://www.livakursertestsite.dk/images/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( "&nbsp;", " ", $description );

$image = JURI::root()."administrator/components/com_managecourse/images/".$getcourse[0]->image_url;
$type = "article";
}
在我的标签中,我有:



您可能希望尝试禁用任何类型的压缩,例如PHP中的GZIP压缩。这帮助我解决了Joomla 3.3网站中的类似问题

我启用了GZIP压缩,Facebook无法抓取我的网站。禁用GZIP压缩解决了这个问题

我还没有弄清楚这是Joomla问题还是GZIP/PHP问题,或者是facebook的刮擦问题

编辑:通过共享操作,Facebook只读取你页面的前40k条。启用GZIP时,仅读取前40k将出现问题,因为它无法解压缩部分内容

更好的解决方案是只对Facebook、LinkedIn等网站禁用GZIP

您可以使用名为gzip的小插件非常友好的控件:

或者使用此代码(压缩xml和php文件,您可以将其作为插件安装)

请注意:如果您的站点上安装了JCH优化模块,则需要禁用插件提供的gzip压缩。所有其他选项都可以保持激活状态而不会出现任何问题,包括本机Joomla gzip压缩

干杯,
Teeuwis

我在joomla 3中找到了解决问题的方法,只修改joomla core中的2个文件,这样就不必关闭GZIP选项。它只有在检测到facebook爬虫时才会自动关闭

还有一个插件来解决这个问题,但这个插件对我来说运行不正常


–看起来文档中的字节序列不是有效的UTF-8–所以先去修复它。哇,我没注意到!现在所有的错误都被清除了,但是我仍然无法调试页面。太棒了!就这样-谢谢你!作为记录,Facebook刮板向我显示了相同的错误消息,我没有使用Joomla,我使用的是WordPress。这也解决了我在Joomla上的问题,谢谢。下面是如何
<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://www.livakursertestsite.dk/images/liva-logo.jpg" />
<meta property="fb:app_id" content="502033806595590" />
<meta property="og:site_name" content="LIVA Kurser" />