여기에 자세한 내용은 여기
있습니다 내 오픈 그래프 로케일 태그입니다..
<meta property="og:locale" content="en_US" />
<meta property="og:locale:alternate" content="en_US" />
<meta property="og:locale:alternate" content="fr_CA" />
매우 중요 :The documentation은 항상 og:locale
이 페이지의 "기본"로켈을 반영해야한다고 생각합니다. 그렇지 않다; 그렇게하면 스크레이퍼가 다른 언어를 검색하지 못하게됩니다. og_locale
은 현재 로켈을 반영해야합니다. 즉, 스크래퍼 (또는 사용자)가 fr_CA
콘텐츠를 요청한 경우 이 응답으로 fr_CA
으로 설정되어 있는지 확인하십시오.
가능한 모든 로케일을 og:locale:alternate
으로 지정하십시오. 이 방법으로 스크레이퍼가 en_US
또는 fr_CA
을 요청했는지 여부에 관계없이 여전히 두 가지가 모두 존재한다는 것을 알 수 있습니다. 여기
이 내 페이지에서 프로세스를 다시 페이스 북 스크레이퍼를 묻는 데요 : 여기
curl -d "id=https://apps.facebook.com/everydaybarilla/&scrape=true" https://graph.facebook.com
하면 응답입니다 :
{
"url": "http://apps.facebook.com/everydaybarilla/",
"type": "website",
"title": "Barilla\u2019s Every Day, Every Way Contest",
"locale": {
"locale": "en_us",
"alternate": [
"fr_ca"
]
},
"image": [
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/5.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/4.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/3.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/en-2.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/en-1.png"
}
],
"description": "Barilla Canada is whisking one lucky winner and a guest off to Italy on an 8-day Italian culinary adventure for 2 in the Barilla Every Day, Every Way Contest!",
"site_name": "Barilla\u2019s Every Day, Every Way Contest",
"updated_time": "2012-04-16T17:59:38+0000",
"id": "10150594698421968",
"application": {
"id": "317271281656427",
"name": "Barilla\u2019s Every Day, Every Way Contest",
"url": "http://www.facebook.com/apps/application.php?id=317271281656427"
}
}
은 스크레이퍼가 제대로 디폴트 로케일에 대한 데이터를 반환하지만 the documentation에 따라 , 스크레이퍼가 대체 로케일을 긁어 모으는 것으로 보인다. 그렇지 않다. 분명히 위의 응답에서 대체 로케일을 보지만 처리하지는 않습니다.
curl -d "id=https://apps.facebook.com/everydaybarilla/&scrape=true&locale=fr_CA" https://graph.facebook.com
이번에는 제대로 스크레이퍼에서 내 서버에이 개 요청을 참조하십시오
그래서, 여기에 내가 특별히 EN 프랑스어 내 페이지를 처리하기 위해 페이스 북 스크레이퍼를 요청합니다. 두 번째 요청에는 X-Facebook-Locale
헤더와 fb_locale
URL 매개 변수가 모두 fr_CA
으로 올바르게 설정되어 있습니다. 그리고 POST는 올바르게 프랑스 응답을 반환합니다.
{
"url": "http://apps.facebook.com/everydaybarilla/?fb_locale=fr_CA",
"type": "website",
"title": "Concours Tous les jours, de toutes les fa\u00e7ons de Barilla",
"locale": {
"locale": "fr_ca",
"alternate": [
"en_us",
"fr_ca"
]
},
"image": [
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/5.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/4.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/3.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/fr-2.png"
},
{
"url": "http://everydaybarilla.ssl.spidermarketing.ca/assets/img/thumbnails/fr-1.png"
}
],
"description": "Un heureux gagnant et son invit\u00e9(e) partiront \u00e0 destination de l\u2019Italie pour une aventure culinaire de 8 jours pour 2 personnes (valeur au d\u00e9tail approximative de 15 000 $)!",
"site_name": "Barilla\u2019s Every Day, Every Way Contest",
"updated_time": "2012-04-16T18:11:27+0000",
"id": "10150594698421968",
"application": {
"id": "317271281656427",
"name": "Barilla\u2019s Every Day, Every Way Contest",
"url": "http://www.facebook.com/apps/application.php?id=317271281656427"
}
}
성공!
물론이 모든 노력 끝에 프랑스 Facebook.com에 가서이 URL을 게시하면 상태 상자에 영문 데이터가 채워집니다. Facebook의 자체 인터페이스가 올바른 로케일을 요청하도록 구성되어 있지 않은 것으로 보입니다.
이 모든 노력에도 불구하고 아무 것도 완성되지 않은 것 같습니다 (Facebook 번역 앱을 통해 내 문자열을 번역해도 작동하지 않으므로 놀랄 일이 아닙니다).
그래도 질문에 답합니다. 누군가는 왜 Facebook.com 인터페이스가 올바른 로케일을 요청하지 않는지를 판단 할 수 있습니다.
이 문제를 해결할 수있는 방법을 찾으셨습니까? –