我遇到了 Open Oraph 对象的国际化问题。
当我要求刮板在特定语言环境中刮我的 opengraph 对象时,对象首先在默认语言环境中刮,即不带参数 fb_locale,然后在正确的语言环境中刮,即使用 fb_locale=[LOCALE]。抓取的返回包含第一个默认语言环境 (en_US) 抓取的结果,并且该对象未在正确的语言环境中显示,无论是在慢性还是在提要中。
这是我的电话:
Call the scraper
POST https://graph.facebook.com
id http://apps.facebook.com/[APP_NAMESPACE]/?ogObjType=prize&ogObjId=1&ogObjVariant=
scrape true
locale de_DE
然后第一次抓取由 Facebook 完成:
GET [GAME_HOST]?ogObjType=prize&ogObjId=1&ogObjVariant
Returns:
<html><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# [APP_NAMESPACE]: http://ogp.me/ns/fb/[APP_NAMESPACE]#">
<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="[APP_ID" />
<meta property="og:type" content="[APP_NAMESPACE]:prize" />
<meta property="og:url" content="http://apps.facebook.com/[APP_NAMESPACE]/?ogObjType=prize&ogObjId=1&ogObjVariant" />
<meta property="og:title" content="Golden Medal" />
<meta property="og:description" content="A Golden Medal" />
<meta property="og:determiner" content="the" />
<meta property="og:image" content="[IMAGE_en_US_URL]" />
</head><body...</body></html>
然后第二次抓取由 facebook 完成:
GET [GAME_HOST]?ogObjType=prize&ogObjId=1&ogObjVariant&fb_locale=de_DE
Returns:
<html><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# [APP_NAMESPACE]: http://ogp.me/ns/fb/[APP_NAMESPACE]#">
<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="[APP_ID]" />
<meta property="og:type" content="[APP_NAMESPACE]:prize" />
<meta property="og:url" content="http://apps.facebook.com/[APP_NAMESPACE]/?ogObjType=prize&ogObjId=1&ogObjVariant" />
<meta property="og:title" content="Goldmedaille" />
<meta property="og:description" content="Eine Goldmedaille" />
<meta property="og:determiner" content="the" />
<meta property="og:image" content="[IMAGE_de_DE_URL]" />
</head><body>...</body></html>
刮刀返回:
{"url":"http:\/\/apps.facebook.com\/[APP_NAMESPACE]\/?ogObjType=prize&ogObjId=1&ogObjVariant",
"type":"[APP_NAMESPACE]:prize",
"title":"Golden Medal",
"locale":{"locale":"en_us","alternate":["de_de","en_us","fr_fr"]},
"image":[{"url":"[IMAGE_en_US_URL]"}],
"description":"A Golden Medal",
"site_name":"[APP_NAME]",
"determiner":"the",
"updated_time":"2012-08-21T08:58:57+0000",
"id":"[SOME_ID]",
"application":{"id":"[APP_ID]","name":"[APP_NAME]","url":"http:\/\/www.facebook.com\/apps\/application.php?id=[APP_ID]"}}
你有什么建议,为什么对象被刮了两次,本地化的版本没有存储?