13

オープングラフオブジェクトの国際化に問題があります。og:localeタグとog:locale:alternateタグを提供していますが、Facebookは異なるロケールでオブジェクトをスクレイプしません。http://developers.facebook.com/tools/debugのオブジェクトデバッガーで、og:locale:alternateが解析され、配列として表示されていることがわかります。ただし、それらの1つをクリックすると、パラメーターなしでスクレイプが発生します。fb_localeもlocaleもヘッダーX-Facebook-Localeも提供されていません。

オブジェクトの例の1つを次に示します。

<!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

私は同じ問題を抱えています。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 に答える
0

en_US の代わりに、ロケール en_us に小文字を使用してみてください。

于 2014-01-20T16:08:03.197 に答える