2

我遇到了 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]"}}

你有什么建议,为什么对象被刮了两次,本地化的版本没有存储?

4

0 回答 0