Trình thu thập dữ liệu Facebook

Nội dung thường được chia sẻ lên Facebook ở dạng trang web. Lần đầu tiên ai đó chia sẻ một liên kết, Trình thu thập dữ liệu Facebook sẽ thu thập HTML tại URL đó để tập hợp, lưu vào bộ nhớ đệm và hiển thị thông tin về nội dung trên Facebook như tiêu đề, mô tả và hình nhỏ.

Quyền truy cập của trình thu thập dữ liệu

Trình thu thập dữ liệu Facebook cần có thể truy cập nội dung của bạn để thu thập và chia sẻ nội dung chính xác. Trang của bạn phải hiển thị với trình thu thập dữ liệu. Nếu bạn yêu cầu đăng nhập hay nói cách khác giới hạn quyền truy cập vào nội dung của mình, bạn sẽ cần cho phép trình thu thập dữ liệu của chúng tôi. Bạn cũng nên loại trừ trình thu thập dữ liệu của chúng tôi khỏi cơ chế bảo vệ DDoS.

Nếu nội dung không có sẵn tại thời điểm thu thập, bạn có thể buộc trích xuất lại sau khi nội dung có sẵn bằng cách chuyển URL thông qua Trình gỡ lỗi chia sẻ.

Xác định trình thu thập dữ liệu

Trình thu thập dữ liệu Facebook có thể được xác định bằng một trong hai chuỗi tác nhân người dùng sau:

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

hoặc

facebookexternalhit/1.1

Bạn có thể nhắm mục tiêu một trong các tác nhân người dùng sau để cung cấp cho trình thu thập dữ liệu phiên bản không công khai của trang chỉ có siêu dữ liệu chứ không có nội dung thực. Điều này giúp tối ưu hóa hiệu quả và hữu ích để bảo mật nội dung yêu cầu trả phí nếu muốn sử dụng.

Kể từ ngày 28 tháng 5 năm 2014, bạn cũng có thể xem trình thu thập dữ liệu với chuỗi tác nhân người dùng sau:

Facebot

Facebot là rôbốt thu thập dữ liệu trên web của Facebook, giúp cải thiện hiệu quả quảng cáo. Facebot được thiết kế hợp lý. Facebot cố gắng không truy cập vào từng máy chủ web quá một lần mỗi vài giây, phù hợp với tiêu chuẩn ngành và sẽ tôn trọng cài đặt robots.txt của bạn.

Lưu ý rằng Facebot sẽ chỉ kiểm tra các thay đổi đối với tệp robots.txt của máy chủ một vài lần mỗi ngày vì vậy mọi cập nhật sẽ được thông báo vào lần thu thập dữ liệu tiếp theo, chứ không phải ngay lập tức.

Giới hạn tốc độ của trình thu thập dữ liệu

Bạn có thể gắn nhãn trang và đối tượng để thay đổi thời gian mà trình thu thập dữ liệu của Facebook sẽ đợi để kiểm tra nội dung mới của trang và đối tượng. Sử dụng thuộc tính đối tượng og:ttl để giới hạn quyền truy cập của trình thu thập dữ liệu nếu trình thu thập dữ liệu của chúng tôi quá chi tiết.

Cấp quyền truy cập cho trình thu thập dữ liệu

Có hai cách để cấp quyền truy cập cho trình thu thập dữ liệu:

  1. Cho phép các chuỗi tác nhân người dùng được liệt kê bên trên, không cần sửa đổi
  2. Cho phép các địa chỉ IP được trình thu thập dữ liệu sử dụng, an toàn hơn:

Chạy lệnh này để nhận danh sách các địa chỉ IP hiện tại mà trình thu thập dữ liệu sử dụng.

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

Thao tác này sẽ trả về danh sách các địa chỉ IP thường xuyên thay đổi:

# For example only - over 100 in total
31.13.24.0/21 
66.220.144.0/20    
2401:db00::/32  
2620:0:1c00::/40  
2a03:2880::/32 

Đảm bảo thời gian chờ hợp lý

Bạn cần đảm bảo rằng tài nguyên được tham chiếu trong URL sẽ thu thập có thể được truy xuất nhanh theo cách hợp lý bởi trình thu thập dữ liệu, trong không quá vài giây. Nếu trình thu thập dữ liệu không thể thực hiện điều này thì Facebook sẽ không thể hiển thị tài nguyên.

URL chính tắc

Trình thu thập dữ liệu của chúng tôi tìm nạp nội dung để chia sẻ bằng cách tách URL mà bạn chỉ định làm URL chính tắc.

Thực tiễn tốt nhất là bạn nên gắn nhãn tất cả các biến thể của trang với URL chính tắc bằng cách sử dụng thẻ og:url (ưu tiên) hoặc link rel="canonical". HTML cho URL chính tắc cũng phải chứa thẻ og:url để tự chỉ định làm tài nguyên chính tắc.

<meta property="og:url" content="https://example.com/path" />

Điều này đảm bảo rằng tất cả các hành động chẳng hạn như thích và chia sẻ tổng hợp tại cùng một URL thay vì trải rộng trên nhiều phiên bản của trang.

Điều này cũng có nghĩa là các phiên bản khác nhau của cùng một nội dung sẽ được xử lý giống nhau, ngay cả khi chúng được lưu trữ trên các miền phụ riêng biệt hoặc có thể truy cập được trên cả http:// và https://.

Nếu cần, trình thu thập dữ liệu của chúng tôi sẽ theo dõi chuỗi chuyển hướng để giải quyết URL chính tắc.

Di chuyển nội dung/Cập nhật URL

Nếu bạn di chuyển nội dung của mình từ một URL sang URL khác, số lượt thích và chia sẻ sẽ không tự động di chuyển. Bạn có thể duy trì số lượt thích và chia sẻ bằng hai bước sau:

1. Loại trừ trình thu thập dữ liệu Facebook khỏi chuyển hướng HTTP

Sử dụng chuyển hướng HTTP 301 hoặc 302 để chuyển mọi người đến URL mới khi họ truy cập URL cũ.

Trình thu thập dữ liệu sẽ vẫn cần có quyền truy cập vào trang cũ, vì vậy hãy loại trừ tác nhân người dùng của trình thu thập dữ liệu khỏi chuyển hướng và chỉ gửi chuyển hướng HTTP đến các ứng dụng thu thập dữ liệu không phải của Facebook.

HTML của URL cũ sẽ vẫn chứa thẻ Open Graph (bao gồm thẻ og:url tự trỏ đến) và trả về phản hồi HTTP 200 khi trình thu thập dữ liệu tải HTML.

Đồng thời đảm bảo rằng bản ghi AAAA của bạn được cập nhật đúng khi bạn thay đổi URL vì trình thu thập dữ liệu sẽ tìm một URL như vậy và phản hồi mã 0 nếu không tìm thấy.

2. Sử dụng trang cũ làm URL chính tắc cho trang mới

Thêm thẻ này vào HTML của URL mới:

<meta property="og:url" content="https://example.com/old-url" />

Mặc dù thẻ og:url được ưu tiên, phương thức này cũng sẽ hoạt động với rel=canonical.

Thao tác này sẽ cho trình thu thập dữ liệu của chúng tôi biết rằng URL chính tắc ở vị trí cũ và trình thu thập dữ liệu sẽ sử dụng URL đó để tạo số lượt Thích trên trang. Số lượt thích mới tại một trong hai vị trí sẽ tổng hợp ở cả hai địa điểm.

URL cũ vẫn phải hiển thị tài liệu có thẻ Open Graph và trả về phản hồi HTTP 200, ít nhất là khi được tải bởi trình thu thập dữ liệu của Facebook. URL cũ phải chứa thẻ og:url riêng trỏ tới chính URL đó. Nếu muốn các ứng dụng khác chuyển hướng khi truy cập URL, bạn phải gửi phản hồi 301 HTTP tới tất cả các ứng dụng trình thu thập dữ liệu không phải của Facebook.

Bạn có tìm hiểu cách nhận dạng trình thu thập dữ liệu của Facebook trong Hướng dẫn thực tiễn tốt nhất về chia sẻ của chúng tôi.