2011-12-13 34 views
5

Tôi tin rằng trang web của tôi có đánh dấu đúng cho Facebook & Thẻ meta biểu đồ mở. Nhưng kiểm tra linter của Facebook cho thấy rằng không ai trong số các thẻ đang được phát hiện. Bạn có thể xem cho chính mình ở đây:Công cụ gỡ lỗi Facebook Debugger được HTTP 206 - không phát hiện thẻ meta Open Graph (những công cụ khác)

http://developers.facebook.com/tools/debug/og/object?q=goodloesolitaire.com

Khi tôi sử dụng một trang web khác, các thẻ được tìm thấy:

http://www.opengraph.in/?url=goodloesolitaire.com&format=html

Tôi đã trải qua những câu hỏi tương tự và không ai trong số những người kiểm tra. Bất kỳ ý tưởng về lý do tại sao trình gỡ lỗi của Facebook có thể thấy không có gì?

Trả lời

3

Facebook đang nhìn thấy mã HTTP 206 "Nội dung một phần" thay vì 200 "OK" bình thường.

206 "Nội dung phần": Thông báo này có thể xảy ra nếu một khách hàng có một bản sao một phần của nội dung trong bộ nhớ cache và các yêu cầu của mình và cập nhật của thiếu nội dung. Thông báo này cho biết rằng yêu cầu một phần đã thành công.

Tôi tìm thấy một bài diễn đàn cũ về nó: http://forum.developers.facebook.net/viewtopic.php?id=68440

Dường như nó có thể là một vấn đề cấu hình máy chủ để làm với bộ nhớ đệm. Bạn có chạy Varnish hay bất cứ thứ gì như thế trên máy chủ của bạn không? Kiểm tra trong đó.

Một điều khác để thử có thể là di chuyển thẻ meta ký tự của bạn bên dưới thẻ Mở biểu đồ, vì vậy Facebook biết mã hóa đúng để phân tích cú pháp chúng. Ngoài ra, việc sử dụng thẻ loại này có thể hoạt động tốt hơn:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Cuối cùng, hãy đảm bảo bạn không có bất kỳ điều gì chặn tác nhân người dùng scraper Facebook. Như đã đề cập trong số documentation:

Chức năng bot của chúng tôi với tác nhân người dùng "facebookexternalhit/*". Thực hiện chắc chắn rằng bạn không chặn tác nhân người dùng đó. Ngoài ra, đảm bảo các máy chủ của Facebook có thể tiếp cận với máy chủ của bạn.

+0

206 là một đầu mối. Hóa ra là một vấn đề với khung công tác kết nối middleware. Nó đã được thiết lập Content-Length dựa trên phạm vi yêu cầu chứ không phải là kích thước cơ thể. – Thomas

+0

Rất vui vì bạn đã hiểu nó! – thaddeusmt

+0

Bạn có thể muốn chấp nhận câu trả lời này nếu nó giúp giải quyết vấn đề của bạn. – gjb

1

Nếu bạn đang sử dụng Varnish:

Đặt

if (req.http.user-agent ~ "facebookexternalhit") 
{ 
    return(pipe); 
} 

Bên sub vcl_recv của bạn :

sub vcl_recv 
{ 
} 

Nó hoạt động rất tốt.

Các vấn đề liên quan