我有一个 opengraph 对象 https://example.com/object支持多个区域设置,特别是 en_US
和fr_FR
默认第一个。
在 Facebook 的对象调试器中解析它可以正确地将两个区域设置显示为 og:locale:alternate
属性和默认区域设置为 og:locale
。单击每个区域设置链接确实会显示预期区域设置中的对象。
但是,当用户喜欢该对象时(传递 https://example.com/object 作为对象 url,使用任何同类区域设置,并且无论在 Facebook 中为用户定义了哪个区域设置),她的流始终以默认值显示该对象en_US
语言环境。
这是 Facebook 问题,还是我错过了什么?
注意:
这个问题类似于this one 。然而,重点是通过 Facebook 抓取 URL,这对我来说效果很好:两者 fb_locale
和X-Facebook-Locale
抓取 url 时正确传递。这里,重点是使用正确的区域设置在流中显示抓取的 URL
最佳答案
文档有点困惑。
og:locale
不应设置为您的默认区域设置;它应该设置为您当前返回的任何区域设置。
具体来说,如果 Facebook 请求 fb_locale=fr_FR
,您需要返回<meta property="og:locale" content="fr_FR">
在响应中。
确实有道理。当 Facebook 看到 og:locale="en_US"
时在响应中,它认为您没有要返回的法语页面,因此它使用已有的英语内容。只是根本没有很好的记录。
以下是我的英语开放图谱区域设置标签:
<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 在对话框中实际使用正确的内容时,您的效果可能会有所不同,但这至少会让抓取工具识别您的内容。
关于locale - opengraph 对象仅在流中显示默认区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202099/