locale - opengraph 对象仅在流中显示默认区域设置

标签 locale facebook-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 时正确传递。这里,重点是使用正确的区域设置在流中显示抓取的 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/

相关文章:

r - 将语言环境设置为系统默认 UTF-8

spring-mvc - 动态更新 JSTL 区域设置,无论浏览器区域设置如何

unicode - 使用 std::fstream 写入 UTF16 文件

html - 奥格 : Image and Facebook Link thumbnails

facebook - 手动在 header joomla 中添加 facebook 打开图

facebook - 就像 - Sharer.php 尽管有元数据但仍忽略图像

java - 更改 java 区域设置

java - 从系统属性中读取短日期

redirect - 由于重定向,规范 OG URL 在 URL linter 中失败

facebook-opengraph - 为什么Google会忽略我的+1页缩略图?