ครอว์เลอร์ของ Facebook

ครอว์เลอร์ของ Facebook จะรวบรวม HTML ของแอพหรือเว็บไซต์ที่แชร์บน Facebook ผ่านการคัดลอกแล้ววางลิงก์หรือโดยใช้โซเชียลปลั๊กอินของ Facebook ครอว์เลอร์จะเก็บรวบรวม แคช และแสดงข้อมูลเกี่ยวกับแอพหรือเว็บไซต์ เช่น ชื่อ คำอธิบาย และภาพขนาดย่อ

ข้อกำหนดของครอว์เลอร์

  • เซิร์ฟเวอร์ของคุณจะต้องใช้การเข้ารหัสแบบ gzip และ deflate
  • คุณสมบัติ Open Graph ต่างๆ จะต้องอยู่ในช่วงก่อนครบ 1 MB แรกของเว็บไซต์หรือแอพ ไม่เช่นนั้น คุณสมบัติดังกล่าวจะถูกตัดออกไป
  • ตรวจสอบให้แน่ใจว่าครอว์เลอร์จะสามารถรวบรวมข้อมูลเนื้อหาภายในไม่กี่วินาทีได้ ไม่เช่นนั้น Facebook จะไม่สามารถแสดงเนื้อหาดังกล่าวได้
  • แอพหรือเว็บไซต์ของคุณควรสร้างและส่งคืนการตอบกลับที่มีคุณสมบัติที่กำหนดไว้ทั้งหมดตามจำนวนไบต์ที่ระบุไว้ในส่วนหัว Range ของคำขอครอว์เลอร์ ไม่เช่นนั้นก็ควรข้ามส่วนหัว Range ไปเลยทั้งหมด
  • เพิ่มสตริงตัวแทนผู้ใช้หรือที่อยู่ IP (ปลอดภัยกว่า) ที่ครอว์เลอร์ใช้ลงในรายการที่อนุญาตของคุณ
  • ตรวจสอบให้แน่ใจว่าแอพหรือเว็บไซต์ของคุณอนุญาตให้ครอว์เลอร์ของ Facebook รวบรวมข้อมูลนโยบายความเป็นส่วนตัวที่เกี่ยวข้องกับแอพหรือเว็บไซต์ของคุณแล้ว

IP ครอว์เลอร์และตัวแทนผู้ใช้

สตริงตัวแทนผู้ใช้ของครอว์เลอร์ Facebook:

  • facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
  • facebookexternalhit/1.1
  • facebookcatalog/1.0

หากต้องการดึงข้อมูลรายการที่อยู่ IP ปัจจุบันที่ครอว์เลอร์ใช้ ให้เรียกใช้คำสั่งต่อไปนี้

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

ที่อยู่ IP เหล่านี้มักเปลี่ยนแปลงบ่อย

ตัวอย่างการตอบกลับ

...
route:      69.63.176.0/21
route:      69.63.184.0/21
route:      66.220.144.0/20
route:      69.63.176.0/20
route6:     2620:0:1c00::/40
route6:     2a03:2880::/32
route6:     2a03:2880:fffe::/48
route6:     2a03:2880:ffff::/48
route6:     2620:0:1cff::/48
... 

การแก้ไขปัญหา

หากเนื้อหาในแอพหรือเว็บไซต์ของคุณไม่พร้อมใช้งานในขณะทำการรวบรวม คุณจะสามารถบังคับให้ทำการรวบรวมหลังจากเนื้อหาพร้อมใช้งานได้ โดยการส่ง URL ผ่านเครื่องมือตัวแก้ไขจุดบกพร่องการแชร์หรือโดยใช้ API การแชร์

คุณสามารถจำลองคำขอครอว์เลอร์ได้ด้วยโค้ดต่อไปนี้:

curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "$URL"