我有一个支持多种语言环境的 opengraph 对象(在此示例中,默认为 en_US 和 fr_FR)。
这是 facebook opengraph 使用的生成的 html 页面的示例,但是当我自己调用它时。
Default:
<meta property="og:locale" content="en_US"/>
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta property="og:title" content="chair" />
?fb_locale=en_US
<meta property="og:locale" content="en_US"/>
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta property="og:title" content="chair" />
?fb_locale=fr_FR
<meta property="og:locale" content="fr_FR"/>
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta property="og:title" content="chaise" />
Facebook 爬虫既不会向我发送 fb_locale 也不会向我发送 X-Facebook-Locale。
解决方案: 刷新facebook的缓存
curl -X POST -F "id=http://yoururl" -F "scrape=true" -F "locale=fr_fr" "https://graph.facebook.com" -s
(在我的示例中,我使用了 fr_fr)