无法访问 Open Graph 元标记,Facebook 中的页面预览显示“422”?

Open Graph meta tags not accessible, preview of page in Facebook shows "422"?

我无法让 Facebook 访问我的开放图表标签。当我尝试共享页面时,站点链接正确,但 og 属性未显示,标题仅显示为“422”。我不确定这是什么意思。

当我 运行 facebook 调试器 https://developers.facebook.com/tools/debug/og/object/ 我得到以下错误,这不是很有帮助:

Error parsing input URL, no data was cached, or no data was scraped.

使用调试工具中的回显功能,我得到的是:

Document returned no data

我的文档中的元标记似乎设置正确:

<!DOCTYPE html>
<html>
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="robots" content="noarchive,noodp,noydir" />
  <meta name="referrer" content="always" />
  <meta property="fb:app_id" content="375576830972731" />
  <meta property="og:site_name" content="Site Name" />
  <meta property="og:title" content="Title of content" />
  <meta property="og:url" content="https://website.domain.com/123456" />
  <meta property="og:image" content="http://s3-us-west-1.amazonaws.com/domain/media/images/001/original/001" />
  <meta property="og:description" content="Description of content" />
  <meta property="og:type" content="article" />
</head>

我确保在 robots.txt:

中允许 Facebook 爬虫
User-agent: Facebot
Allow: /

User-agent: facebookexternalhit/1.1
Allow: /

我错过了什么?

这里的问题是我在 application.rb 中的 protect_from_forgery 方法。我添加了一个例外,现在 Facebot 可以看到该页面。

class StoriesController < ApplicationController    
  protect_from_forgery except: :show