Facebook 预览忽略 Open Graph 标签
Facebook preview ignores Open Graph tags
我查看了描述类似问题的所有问题,但没有找到解决方案,所以这里还有一个。
有问题的页面是这个https://attanasioscrive.it/cipolle/;您会注意到 <head>
:
中的所有元标记
<meta property="og:title" content="Cipolle e altre disgrazie" />
<meta property="og:description" content="Un libro per chi non ha pazienza per i libri, una ricca collezione di storie cazzute.
Dai un'occhiata senza impegno e guarda cos'ha da offrire." />
<meta property="og:url" content="https://www.attanasioscrive.it/" />
<meta property="og:site_name" content="AttanasioScrive" />
<meta property="og:locale" content="it_IT" />
<meta property="og:type" content="book" />
<meta property="og:image" content="/static/blog/img/cipolle_fb.png" />
<meta property="og:image:alt" content="Copertina del libro Cipolle e altre disgrazie" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="600" />
<meta property="twitter:title" content="Cipolle e altre disgrazie" />
<meta property="twitter:description" content="Un libro per chi non ha pazienza per i libri, una ricca collezione di storie cazzute.
Dai un'occhiata senza impegno e guarda cos'ha da offrire." />
<meta property="twitter:site" content="AttanasioScrive" />
<meta property="twitter:card" content="product" />
<meta property="twitter:image" content="/static/blog/img/cipolle_tw.png" />
<meta property="twitter:image:alt" content="Copertina del libro Cipolle e altre disgrazie" />
不幸的是,无论我点击 "scrape again" 按钮多少次,Facebook 的调试器似乎认为这些标签中的 none 存在,根据一些 Facebook 支持页面,这应该使抓取器的缓存无效并适当地查看最近的更改。
在调试器的警告中有 "SSL Error",尽管我的 SSL 证书是有序的,这让我认为他们的爬虫歧视 Let's Encrypt,但最重要的可能是阻止爬虫实际读取页面,这不是我自己的错。我在网络上的某个地方读到 Facebook 在抓取 https URLs 时遇到了麻烦,我希望这不再是真的,我不想仅仅为了 Facebook(也可能是 Twitter)的缘故而支持不安全的 http。
更新: 结果部分问题是由于我的 nginx 配置文件没有指向完整链证书。更正允许 Facebook 和 Twitter 的调试器正确查看站点。
然而,运行 Facebook 的调试器再次出现,我注意到它现在可以获取某些属性,但不是所有属性:og:url、og:type、og:title , og:image, og:description 是它提到的那些,但值得注意的是它也抱怨 og:url 的内容与页面不匹配,所以这里显然有些不对劲。
从"See exactly what our scraper sees for your URL"功能中,我可以清楚地看到爬虫看到的HTML是我主页上的那个,而不是我提供的具体URL(见URL 以上),但我想要特定页面的特定输出。我应该将 og:url 更正到我想要 link 的特定页面吗?这是否也会修复其他标签未被正确读取的问题?
此回答有助于解决配置问题。
我在使用 LetsEncrypt 证书和 Facebook 时遇到了一些问题,这与配置或安装方式有关。我不确定到底是什么,但几个月前我遇到了这个问题。
我们的解决方法是从另一家供应商那里获得证书(出于其他目的我们不得不这样做)。我们没有花太多时间尝试通过,因为无论如何我们都获得了不同的证书。
但是,我运行测试了一下,发现你的SSL证书配置不正确。
HTTPS当然不是问题。我支持的网站都使用 OG 标签和 HTTPS 一样。
看看这个:https://whatsmychaincert.com/?attanasioscrive.it(我不拥有该网站,只是用它来调试)。它表明您当前设置的证书配置不正确。
从解决这个问题开始。
关于og:url
问题,那是因为您提供的link是:
但是您在 og
标签中的内容是:
基本上,Facebook 正在寻找匹配的人。因此,请尝试更改您的标签以匹配并查看是否可以解决问题。
我查看了描述类似问题的所有问题,但没有找到解决方案,所以这里还有一个。
有问题的页面是这个https://attanasioscrive.it/cipolle/;您会注意到 <head>
:
<meta property="og:title" content="Cipolle e altre disgrazie" />
<meta property="og:description" content="Un libro per chi non ha pazienza per i libri, una ricca collezione di storie cazzute.
Dai un'occhiata senza impegno e guarda cos'ha da offrire." />
<meta property="og:url" content="https://www.attanasioscrive.it/" />
<meta property="og:site_name" content="AttanasioScrive" />
<meta property="og:locale" content="it_IT" />
<meta property="og:type" content="book" />
<meta property="og:image" content="/static/blog/img/cipolle_fb.png" />
<meta property="og:image:alt" content="Copertina del libro Cipolle e altre disgrazie" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="600" />
<meta property="twitter:title" content="Cipolle e altre disgrazie" />
<meta property="twitter:description" content="Un libro per chi non ha pazienza per i libri, una ricca collezione di storie cazzute.
Dai un'occhiata senza impegno e guarda cos'ha da offrire." />
<meta property="twitter:site" content="AttanasioScrive" />
<meta property="twitter:card" content="product" />
<meta property="twitter:image" content="/static/blog/img/cipolle_tw.png" />
<meta property="twitter:image:alt" content="Copertina del libro Cipolle e altre disgrazie" />
不幸的是,无论我点击 "scrape again" 按钮多少次,Facebook 的调试器似乎认为这些标签中的 none 存在,根据一些 Facebook 支持页面,这应该使抓取器的缓存无效并适当地查看最近的更改。
在调试器的警告中有 "SSL Error",尽管我的 SSL 证书是有序的,这让我认为他们的爬虫歧视 Let's Encrypt,但最重要的可能是阻止爬虫实际读取页面,这不是我自己的错。我在网络上的某个地方读到 Facebook 在抓取 https URLs 时遇到了麻烦,我希望这不再是真的,我不想仅仅为了 Facebook(也可能是 Twitter)的缘故而支持不安全的 http。
更新: 结果部分问题是由于我的 nginx 配置文件没有指向完整链证书。更正允许 Facebook 和 Twitter 的调试器正确查看站点。
然而,运行 Facebook 的调试器再次出现,我注意到它现在可以获取某些属性,但不是所有属性:og:url、og:type、og:title , og:image, og:description 是它提到的那些,但值得注意的是它也抱怨 og:url 的内容与页面不匹配,所以这里显然有些不对劲。
从"See exactly what our scraper sees for your URL"功能中,我可以清楚地看到爬虫看到的HTML是我主页上的那个,而不是我提供的具体URL(见URL 以上),但我想要特定页面的特定输出。我应该将 og:url 更正到我想要 link 的特定页面吗?这是否也会修复其他标签未被正确读取的问题?
此回答有助于解决配置问题。
我在使用 LetsEncrypt 证书和 Facebook 时遇到了一些问题,这与配置或安装方式有关。我不确定到底是什么,但几个月前我遇到了这个问题。
我们的解决方法是从另一家供应商那里获得证书(出于其他目的我们不得不这样做)。我们没有花太多时间尝试通过,因为无论如何我们都获得了不同的证书。
但是,我运行测试了一下,发现你的SSL证书配置不正确。
HTTPS当然不是问题。我支持的网站都使用 OG 标签和 HTTPS 一样。
看看这个:https://whatsmychaincert.com/?attanasioscrive.it(我不拥有该网站,只是用它来调试)。它表明您当前设置的证书配置不正确。
从解决这个问题开始。
关于og:url
问题,那是因为您提供的link是:
但是您在 og
标签中的内容是:
基本上,Facebook 正在寻找匹配的人。因此,请尝试更改您的标签以匹配并查看是否可以解决问题。