Facebook调试器lint工具获取HTTP 206 - 不检测Open Graph元标记(其他工具)

时间:2011-12-13 16:23:54

标签: facebook opengraph meta-tags

我相信我的网站有正确的Facebook及其标记。打开Graph元标记。但检查Facebook的linter表明没有检测到任何标签。你可以在这里看到:

http://developers.facebook.com/tools/debug/og/object?q=goodloesolitaire.com

当我使用其他网站时,会找到代码:

http://www.opengraph.in/?url=goodloesolitaire.com&format=html

我经历了类似的问题,没有一个检查出来。关于为什么Facebook的调试器可能什么也看不见的任何想法?

3 个答案:

答案 0 :(得分:3)

Facebook正在看到HTTP代码206“Partial Content”而不是正常的200“OK”。

  

206“Partial Content”:如果客户端有此消息,则可能会出现此消息   缓存中的内容的部分副本以及丢失的请求和更新   内容。此消息表明部分请求成功。

我发现了一篇关于它的旧论坛帖子:http://forum.developers.facebook.net/viewtopic.php?id=68440

看起来它可能是与缓存有关的服务器配置问题。你在服务器上运行Varnish或类似的东西吗?检查一下。

尝试的另一件事可能是将您的charset元标记移动到Open Graph标记下方,因此Facebook知道正确的编码来解析它们。此外,使用此类型标记可能会更好:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

最后,请确保您没有阻止Facebook刮刀用户代理的任何内容。正如他们documentation中提到的那样:

  

我们的机器人使用用户代理“facebookexternalhit / *”运行。使   确定你没有阻止该用户代理。另外,确保Facebook的   服务器可以访问您的服务器。

答案 1 :(得分:1)

如果您使用的是清漆:

if (req.http.user-agent ~ "facebookexternalhit")
{
  return(pipe);
}

sub vcl_recv内:

sub vcl_recv
{
}

效果很好。

答案 2 :(得分:0)

我们使用Varnish所以这对我们起了作用:

if (req.http.user-agent ~ "facebookexternalhit")
    {
    return(pipe);
    }

https://www.varnish-cache.org/lists/pipermail/varnish-misc/2011-February/020060.html