Подтвердить что ты не робот

Интерпретация объекта Open Graph: нет параметра scrape/missing fb_locale

У меня возникают проблемы с интернационализацией моих открытых объектов графа. Я предоставляю og: locale, а также og: locale: альтернативные теги, но Facebook не очищает мои объекты в разных локалях. В отладчике объекта в http://developers.facebook.com/tools/debug я вижу, что og: locale: alternate анализируются и отображаются в виде массива. Но щелчок одним из них приводит к царапинам без каких-либо параметров. Ни fb_locale, ни локаль, ни заголовок X-Facebook-Locale не предоставляются.

Вот один из примеров объектов:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta property="og:locale" content="en_US">
<meta property="og:locale:alternate" content="de_DE">
<meta property="og:locale:alternate" content="en_US">
<meta property="og:locale:alternate" content="fr_FR">
<meta property="fb:app_id" content="181576101937079">
<meta property="og:type" content="APP_NAMESPACE:level">
<meta property="og:url" content="http://apps.facebook.com/APP_NAMESPACE/?ogObjType=level&amp;ogObjId=0_0&amp;ogObjVariant=">
<meta property="og:title" content="Tree House Level 1">
<meta property="og:description" content="">
<meta property="og:determiner" content="the">
<meta property="og:image" content="https://URLTOIMAGE">
</head>
<body>
...
</body>
</html>

И когда я добавляю fb_locale = de_DE вручную, он возвращается.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta property="og:locale" content="de_DE">
<meta property="og:locale:alternate" content="de_DE">
<meta property="og:locale:alternate" content="en_US">
<meta property="og:locale:alternate" content="fr_FR">
<meta property="fb:app_id" content="181576101937079">
<meta property="og:type" content="APP_NAMESPACE:level">
<meta property="og:url" content="http://apps.facebook.com/APP_NAMESPACE/?ogObjType=level&amp;ogObjId=0_0&amp;ogObjVariant=">
<meta property="og:title" content="Baumhaus Level 1">
<meta property="og:description" content="">
<meta property="og:determiner" content="the">
<meta property="og:image" content="https://URLTOIMAGE">
</head>
<body>
...
</body>
</html>

Может ли кто-нибудь сказать, почему Facebook не очищает локализованные версии моих объектов?

4b9b3361

Ответ 1

У меня такая же проблема. OG-теги:

<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="en_GB" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta property="og:locale:alternate" content="ru_RU" />

Если я сделал

curl -X POST -F "id=http://gorokhovsky.nampohui.ru" -F "scrape=true" -F "locale=en_GB" "https://graph.facebook.com"

или locale = en_US

мой сервер получил запрос от FB, и я получаю правильный ответ.

{"url":"http:\/\/gorokhovsky.nampohui.ru\/","type":"website","title":"Surfingbird - your personal web!","locale":{"locale":"en_us","alternate":["en_gb","ru_ru","fr_fr"]},"image":[{"url":"http:\/\/surfingbird.ru\/img\/logo-mailru2.gif?v=1"}],"description":"We pick interesting websites, photos and videos that you\u2019ll like.","site_name":"Surfingbird.ru","updated_time":"2013-02-27T15:04:20+0000","id":"356024197844717","application":{"id":"179736405468568","name":"Gorokhovsky2","url":"http:\/\/www.facebook.com\/apps\/application.php?id=179736405468568"}}

Но если я устанавливаю locale = fr_FR или ru_RU, я получаю

"error":{"message":"Unsupported post request.","type":"GraphMethodException","code":100}

Мой сервер не получил запрос от FB

Если я устанавливаю locale = ru_ru или fr_fr, он работает как locale = en_US

Я думаю, что FB некорректно работает со случаем языковых символов

Ответ 2

Попробуйте использовать нижний регистр для locale en_us вместо en_US.