【问题标题】:Facebook Open Graph, required property 'og:title' of type 'string' was not providedFacebook Open Graph,未提供“字符串”类型的必需属性“og:title”
【发布时间】:2014-08-20 13:02:45
【问题描述】:

我有一个 Joomla 页面 (v3.2.4),我在其中使用 PHP 放入了一些动态 Open Graph 标签,如下所示:

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( " ", " ", $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 Object Debugger 运行页面时,出现以下两个错误:

URL 'http://www.livakursertestsite.dk/kurser/babytegn-2' 的对象 类型“网站”无效,因为必需的属性“og:title” 未提供类型“字符串”。

第二个错误:

Curl 错误:处理内容时出现 BAD_CONTENT_ENCODING 错误 unencoding: 无效的块类型

我试过了:

  • 将代码移动到标题标签的下方和上方
  • 将其移动到头部标签的最顶部和最底部,但是 两者都不起作用。
  • 将 PHP 代码放入 head-tag 中,但仍然没有。

您可以在这里查看该网站: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://www.livakursertestsite.dk/images/liva-logo.jpg" />
<meta property="fb:app_id" content="502033806595590" />
<meta property="og:site_name" content="LIVA Kurser" />

我现在也试过了:

  • Googles Rich Snippets testing tool 上测试站点,以及 Google 会获取所有数据。
  • 删除所有非强制性 Open Graph 标记,因此只存在四个强制性标记(类型、标题、网址和图像)。
  • 删除所有导致 Firebug 错误的 javascript。

Facebook 调试器仍然无法获取数据。

编辑#2:

在@CBroe 发表评论后,我修复了页面,因此可以对其进行验证,没有错误,但仍然没有运气。

【问题讨论】:

标签: php html facebook facebook-graph-api joomla


【解决方案1】:

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

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

我还没有弄清楚这是 Joomla 问题还是一般的 GZIP/PHP 问题或 facebook 抓取问题。

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

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

可以使用gzip这个小插件非常友好的控制:http://extensions.joomla.org/extensions/core-enhancements/performance/site-performance/27725

或者使用这个codee https://github.com/dgt41/(压缩xml和php文件,你可以把它安装成插件)

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

干杯, 蒂乌维斯

【讨论】:

  • 太棒了!就是这样 - 谢谢!
  • 作为记录,Facebook 抓取工具向我显示相同的错误消息,我没有使用 Joomla,我使用的是 WordPress。
  • 这也解决了我在 Joomla 上的问题,谢谢。这是disable GZIP on Joomla的方法
【解决方案2】:

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

https://github.com/dgt41/joomla-cms/commit/6eef42e50e3f3e4c78c93285de7f9ecfe8bbfbf5 和一个插件来解决这个问题,但这个对我来说运行不正常。

https://github.com/dgt41/facebookfix/commit/e1d5aa3a1a94f7751d3b69db78ba1aa02dfc37c6

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2013-01-09
    • 2011-12-13
    • 1970-01-01
    • 2013-01-13
    • 2012-10-26
    相关资源
    最近更新 更多