13

我在开放图形对象的国际化方面遇到问题。我提供了 og:locale 和 og:locale:alternate 标签,但 Facebook 不会在不同的语言环境中抓取我的对象。在http://developers.facebook.com/tools/debug的对象调试器中,我可以看到 og:locale:alternate 被解析,并将它们显示为一个数组。但是单击其中一个会导致没有任何参数的刮擦。既不提供 fb_locale 也不提供 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 不抓取我的对象的本地化版本?

4

2 回答 2

0

尝试使用小写的语言环境 en_us 而不是 en_US。

于 2014-01-20T16:08:03.197 回答
0

我有同样的问题。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 不正确地使用区域设置字符的大小写

于 2013-02-27T15:27:22.680 回答