Làm thế nào để xóa bộ nhớ cache của Facebook Sharer?


115

Chúng tôi đã sử dụng liên kết:

http://www.facebook.com/sharer.php?u=[shared URL]

... để chia sẻ một trang cụ thể. Tuy nhiên, Facebook Sharer sử dụng phiên bản đã lưu trong bộ nhớ cache của hình ảnh và tiêu đề. Có cách nào để xóa nhanh bộ nhớ đệm Facebook hay chúng ta phải đợi bao lâu cho đến khi dữ liệu được cập nhật?

Tôi đã đặt <link rel='image_src' href='[preview image]' />ở giữa các thẻ.

Câu trả lời:


237

Tôi đã tìm thấy một giải pháp cho vấn đề của mình. Bạn có thể vào trang web này:

https://developers.facebook.com/tools/debug

... sau đó nhập URL của trang bạn muốn chia sẻ và nhấp vào "gỡ lỗi". Nó sẽ tự động trích xuất tất cả thông tin trên các thẻ meta của bạn và cũng xóa bộ nhớ cache.


1
Có cách nào để có được điều tương tự nhưng tự động với javascript không? Trang web của tôi có các trang có thể thay đổi tên thường xuyên. Tôi không muốn đợi 24 giờ Facebook đặt lại bộ nhớ cache, tôi cũng không thể truy cập Facebook Lint mọi lúc. Tôi đã cố gắng sử dụng một yêu cầu ajax lên Facebook Lint (với developers.facebook.com/tools/debug/og/object?q= ... như url) nhưng câu trả lời là q giá trị (thông qua như là tham số để url ở trên) là không được phép bởi Access-Control-Allow-Origin.
Giovanni Bitliner

3
Nếu bạn vẫn gặp sự cố làm mới nó, hãy thử thêm tham số chuỗi truy vấn ngẫu nhiên vào cuối URL của bạn.
JD Smith

2
Chỉ cần nhấp vào Fetch new scrape informationnút
IvanRF

2
Tôi đã tìm nạp thông tin mẩu tin mới ... nó thấy là dữ liệu phù hợp nhưng người chia sẻ hiển thị dữ liệu cũ. Chúng ta có thể làm gì khác không?
Peege151

1
Nếu bạn gặp sự cố với hình ảnh hiển thị trong phần chia sẻ, hãy thử thay đổi URI hình ảnh.
totymedli

10

Sử dụng api Có API nào để buộc Facebook sửa lại một trang không?

$furl = 'https://graph.facebook.com';

$ch = curl_init();

curl_setopt( $ch, CURLOPT_URL, $furl );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
$params = array(
    'id' => '<update_url>',
    'scrape' => true );
$data = http_build_query( $params );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );

curl_exec( $ch );
$httpCode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );

10

Facebook coi mỗi url là duy nhất và lưu vào bộ nhớ cache của trang dựa trên url đó, vì vậy nếu bạn muốn chia sẻ url mới nhất, giải pháp đơn giản nhất là thêm chuỗi truy vấn với url được chia sẻ. Nói một cách đơn giản, chỉ cần thêm? V = 1 vào cuối url. Bất kỳ số nào cũng có thể được sử dụng thay cho 1.

lưỡi trai : Umair Jabbar


Tôi nghĩ điều này sẽ ảnh hưởng đến số lượng liên kết mà trang của bạn nhận được, vì chúng sẽ được tính cho mỗi phiên bản, phải không?
André Laszlo

3

Tôi điều hai liên kết này có một cuộc thảo luận rộng rãi về những thứ liên quan đến vấn đề của bạn. fb: ref clear tiền mặt bằng cách gọi

fbml.refreshRefUrl

như thế này

<tt> fbml.refreshRefUrl ("http://www.mysite.com/someurl.php")

Bạn có thể nghiên cứu những thứ liên quan từ đây fb: ref . Tôi hy vọng nó sẽ hiệu quả với bạn


3

Trang để thực hiện việc này là tại https://developers.facebook.com/tools/debug/ và đã thay đổi một chút so với một số câu trả lời khác.

Dán URL của bạn vào đó và nhấn " Gỡ lỗi ". Sau đó, nhấn vào nút " Tìm nạp thông tin mẩu tin mới " trong trường văn bản URL và bạn đã sẵn sàng. Nó sẽ kéo các thẻ meta mới từ trang của bạn, nhưng chúng vẫn sẽ được lưu vào bộ nhớ cache, vì vậy hãy nhớ rằng bạn sẽ cần làm điều này bất cứ khi nào bạn thay đổi chúng. Điều này thực sự quan trọng nếu bạn đang chơi với các thẻ meta để lấy các URL được chia sẻ của FB để định dạng theo cách bạn muốn chúng bên trong facebook.


2

Câu trả lời này dành cho các nhà phát triển.

Xóa bộ nhớ cache có nghĩa là các lượt chia sẻ mới của trang web này sẽ hiển thị nội dung mới được cung cấp trong các thẻ OG. Nhưng chỉ khi URL mà bạn đang làm việc có ít hơn 50 tương tác (lượt thích + lượt chia sẻ). Nó cũng sẽ không ảnh hưởng đến các liên kết cũ đến trang web này đã được đăng trên Facebook. Chỉ khi chia sẻ lại URL trên Facebook thì cách Facebook hiển thị liên kết mới được cập nhật.

Câu trả lời của catandmouse là đúng nhưng bạn cũng có thể yêu cầu Facebook xóa bộ nhớ cache OG (OpenGraph) bằng cách gửi yêu cầu đăng bài đến graph.facebook.com (hoạt động cho cả http và https khi viết câu trả lời này). Bạn không cần mã thông báo truy cập.

Yêu cầu đăng bài tới graph.facebook.com có ​​thể như sau:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: graph.facebook.com
Content-Length: 63
Accept-Encoding: gzip
User-Agent: Mojolicious (Perl)

id=<url_encoded_url>&scrape=true

Trong Perl, bạn có thể sử dụng mã sau nơi thư viện Mojo :: UserAgent được sử dụng để gửi và nhận các yêu cầu HTTP:

sub _clear_og_cache_on_facebook {
    my $fburl     = "http://graph.facebook.com";
    my $ua        = Mojo::UserAgent->new;
    my $clearurl  = <the url you want Facebook to forget>;
    my $post_body = {id => $clearurl, scrape => 'true'};
    my $res       = $ua->post($fburl => form => $post_body)->res;
    my $code      = $res->code;
    unless ($code eq '200') {
        Log->warn("Clearing cached OG data for $clearurl failed with code $code.");
        }
    }
}

Gửi yêu cầu bài đăng này qua thiết bị đầu cuối có thể được thực hiện bằng lệnh sau:

curl -F id="<URL>" -F scrape=true graph.facebook.com

1

Nối a? V = random_string vào url. Nếu bạn đang sử dụng ý tưởng này với chia sẻ Facebook, hãy đảm bảo rằng tham số og: url trong phản hồi khớp với url bạn đang chia sẻ. Điều này cũng sẽ hoạt động với google plus.

Đối với Facebook, bạn cũng có thể buộc thu thập lại thông tin bằng cách đưa ra yêu cầu đăng bài lên https://graph.facebook.com

{id: url,
scrape: true}

Điều này thật đúng với gì mà tôi đã tìm kiếm.
Bee

Tôi không thể làm cho điều này hoạt động khi đăng JSON ở trên trong Postman, nhưng việc đăng một chuỗi văn bản thô đã làm mới:id=http://www.ridr.me&scrape=true
Philipp Sumi

1

Tôi vừa đăng một giải pháp đơn giản mất 5 giây ở đây trên một bài đăng có liên quan ở đây - Trình gỡ lỗi Facebook: Xóa

câu trả lời ngắn gọn trong bộ nhớ cache của toàn bộ trang web ... thay đổi liên kết cố định của bạn trên trang web từ khóa trong cài đặt liên kết cố định thành liên kết tùy chỉnh. Tôi chỉ thêm một dấu gạch dưới.
/ _% postname% /
thì facebook loại bỏ tất cả chúng thành url mới, bài viết mới.


Điều này tôi đơn giản và mát mẻ. Thật không may, nó để lại các tên liên kết không mong muốn.
Garavani

0

nếu bạn đang sử dụng wordpress với một plugin bộ nhớ cache, hãy đảm bảo rằng bạn xóa tất cả các bộ nhớ cache của mình. Ngoài ra, hãy đảm bảo rằng hình ảnh bạn đang sử dụng có kích thước facebook khuyến nghị: 1200 (w) x 630 (h) hoặc 600 x 315.


0

Nếu bạn đã sử dụng các plugin wordpress hoặc bộ nhớ đệm được quản lý, bạn phải XÓA CACHE của mình trước khi công cụ gỡ lỗi facebook có thể tìm nạp thông tin mới!

Tôi đã nhổ tóc trong nhiều tuần để tìm ra lý do tại sao những thay đổi tôi đã thực hiện không hiển thị trong trình gỡ lỗi facebook trong 24 giờ !!!! Cách khắc phục là tôi phải vào trang tổng quan wordpress của mình, nhấp vào biểu tượng Godaddy ở trên cùng và nhấp vào "xóa bộ nhớ cache". Tôi nghĩ rằng nhiều máy chủ lưu trữ wordpress được quản lý có bộ nhớ cache để tìm ra cách xóa nó và bạn sẽ là vàng.


Xóa bộ nhớ cache của Wordpress sẽ không giúp ích gì. Ít nhất là đối với tôi.
Garavani
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.