объекты opengraph показывают только локаль по умолчанию в потоке - PullRequest
3 голосов
/ 20 ноября 2011

У меня есть объект opengraph https://example.com/object, который поддерживает несколько языковых стандартов, в частности en_US и fr_FR с первым по умолчанию.

При его анализе в отладчике объектов Facebook правильно отображаются оба языковых стандарта какog:locale:alternate свойств и локаль по умолчанию как og:locale.При щелчке по каждой ссылке на локаль действительно отображается объект в ожидаемой локали.

Однако, когда пользователю нравится объект (передавая https://example.com/object в качестве URL-адреса объекта, используя любой языковой стандарт, аналогичный установленному в поле, и неважно, какойлокаль определена для пользователя в Facebook), ее поток всегда показывает объект по умолчанию en_US locale.

Это проблема Facebook, или я что-то пропустил?

ПРИМЕЧАНИЕ: Этот вопрос похож на этот .Тем не менее, основное внимание здесь уделяется очистке URL-адреса от Facebook, что прекрасно работает для меня: и fb_locale, и X-Facebook-Locale правильно передаются при очистке URL-адреса.Здесь основное внимание уделяется отображению очищенного URL в потоке с использованием правильной локали

1 Ответ

2 голосов
/ 17 апреля 2012

Документация немного сбивает с толку.

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чтобы на самом деле использовать нужный контент в диалоге, ваш пробег может варьироваться, но это по крайней мере заставит скребок распознать ваш контент.

...