opengraph对象仅显示流中的默认语言环境

时间:2011-11-20 14:17:09

标签: locale opengraph

我有一个支持多个区域设置的opengraph对象https://example.com/object,特别是en_USfr_FR,第一个是默认区域。

在Facebook的对象调试器中解析它会正确地将区域设置显示为og:locale:alternate属性,将默认区域设置显示为og:locale。单击每个区域设置链接确实会在预期的区域设置中显示该对象。

但是,当用户喜欢该对象(将https://example.com/object作为对象URL传递,使用任何类似的框区域设置,并且无论在Facebook中为用户定义了哪个区域设置),她的流始终显示该对象其默认的en_US区域设置。

这是Facebook的问题,还是我错过了什么?

注意: 此问题与this one类似。然而,重点是通过Facebook抓取URL,这对我来说很好:当抓取网址时,fb_localeX-Facebook-Locale都正确传递。在这里,重点是使用正确的区域设置

在流中显示已抓取的URL

1 个答案:

答案 0 :(得分:2)

文档有点令人困惑。

og:locale不应设置为默认语言环境;它应该设置为您当前返回的任何区域。

具体而言,如果Facebook要求fb_locale=fr_FR,您需要在回复中返回<meta property="og:locale" content="fr_FR">

确实有意义。当Facebook在响应中看到og:locale="en_US"时,它认为您没有要返回的法语页面,因此它使用了已经获得的英语内容。它根本没有记录得很好。

以下是我的英语Open Graph语言环境标签:

<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_CA" />

法语:

<meta property="og:locale" content="fr_CA" />
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_CA" />

让Facebook在对话框中实际使用正确的内容时,您的里程可能会有所不同,但这至少会让刮刀识别您的内容。