Bagaimana cara menghapus cache Facebook Sharer?

116

Kami menggunakan tautan:

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

... untuk membagikan halaman tertentu. Namun, Facebook Sharer menggunakan gambar dan judul versi cache. Adakah cara untuk menghapus cache Facebook dengan cepat atau berapa lama kita harus menunggu hingga datanya diperbarui?

Saya ditempatkan <link rel='image_src' href='[preview image]' />di antara tag.

kucing dan tikus
sumber

Jawaban:

237

Saya menemukan solusi untuk masalah saya. Anda bisa pergi ke situs ini:

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

... lalu masukkan URL halaman yang ingin Anda bagikan, dan klik "debug". Ini akan secara otomatis mengekstrak semua info di tag meta Anda dan juga membersihkan cache.

kucing dan tikus
sumber
1
Apakah ada cara untuk mendapatkan hal yang sama tetapi secara otomatis dengan javascript? Situs saya memiliki halaman yang dapat sering berubah nama. Saya tidak ingin menunggu selama 24 jam setelah Facebook menyetel ulang cache, dan saya juga tidak dapat membuka Facebook Lint setiap saat. Saya telah mencoba menggunakan permintaan ajax ke Facebook Lint (dengan developers.facebook.com/tools/debug/og/object?q= ... sebagai url) tetapi responnya adalah nilai q (diteruskan sebagai parameter ke url di atas) adalah tidak diizinkan oleh Access-Control-Allow-Origin.
Giovanni Bitliner
3
Jika Anda masih mengalami masalah saat memuat ulang, coba tambahkan parameter string kueri acak di akhir URL Anda.
JD Smith
2
Cukup klik Fetch new scrape informationtombol
IvanRF
2
Saya telah mengambil informasi goresan baru ... ia melihat data yang benar tetapi pembagi menampilkan data lama. Apakah ada hal lain yang bisa kami lakukan?
Peege151
1
Jika Anda memiliki masalah dengan gambar yang ditampilkan di share, coba ubah URI gambar.
totymedli
10

Gunakan api Apakah ada API yang memaksa Facebook untuk mengikis halaman lagi?

$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 );
Vladimir Pak
sumber
10

Facebook memperlakukan setiap url sebagai unik dan menyimpan halaman berdasarkan url itu, jadi jika Anda ingin membagikan url terbaru, solusi paling sederhana adalah menambahkan string kueri dengan url yang dibagikan. Dengan kata sederhana, tambahkan saja? V = 1 di akhir url. Nomor apa pun dapat digunakan sebagai pengganti 1.

Tip topi: Umair Jabbar

Martin Carstens
sumber
Saya pikir ini akan memengaruhi jumlah link yang diterima halaman Anda, karena link tersebut akan dihitung untuk setiap versi, bukan?
André Laszlo
3

Saya rasa kedua tautan ini memiliki diskusi luas tentang masalah Anda terkait hal-hal. fb: ref jelaskan uang tunai dengan menelepon

fbml.refreshRefUrl

seperti ini

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

Anda dapat mempelajari hal-hal terkait dari sini fb: ref . Saya berharap ini akan berhasil untuk Anda

Awais Qarni
sumber
3

Halaman untuk melakukan ini ada di https://developers.facebook.com/tools/debug/ dan telah sedikit berubah sejak beberapa jawaban lainnya.

Tempel URL Anda di sana dan tekan " Debug ". Kemudian tekan tombol " Fetch new scrape information " di bawah kolom teks URL dan Anda sudah siap. Ini akan menarik tag meta baru dari halaman Anda, tetapi mereka masih akan menyimpan cache jadi ingatlah Anda harus melakukan ini setiap kali Anda mengubahnya. Ini sangat penting jika Anda bermain dengan meta tag untuk mendapatkan URL Dibagikan FB ke format seperti yang Anda inginkan di dalam facebook.

Matt Toigo
sumber
2

Jawaban ini ditujukan untuk pengembang.

Menghapus cache berarti bagian baru dari halaman web ini akan menampilkan konten baru yang disediakan di tag OG. Tetapi hanya jika URL yang Anda kerjakan memiliki kurang dari 50 interaksi (suka + bagikan). Ini juga tidak akan mempengaruhi link lama ke halaman web ini yang telah diposting di Facebook. Hanya ketika membagikan URL di Facebook lagi, cara Facebook menampilkan tautan akan diperbarui.

Jawaban catandmouse benar, tetapi Anda juga dapat membuat Facebook menghapus cache OG (OpenGraph) dengan mengirimkan permintaan posting ke graph.facebook.com (berfungsi untuk http dan https saat jawaban ini ditulis). Anda tidak memerlukan token akses.

Permintaan posting ke graph.facebook.com mungkin terlihat sebagai berikut:

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

Di Perl, Anda dapat menggunakan kode berikut di mana perpustakaan Mojo :: UserAgent digunakan untuk mengirim dan menerima permintaan 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.");
        }
    }
}

Mengirim permintaan posting ini melalui terminal dapat dilakukan dengan perintah berikut:

curl -F id="<URL>" -F scrape=true graph.facebook.com
Thorkil Værge
sumber
1

Tambahkan? V = random_string ke url. Jika Anda menggunakan ide ini dengan berbagi Facebook, pastikan bahwa og: url param di tanggapan cocok dengan url yang Anda bagikan. Ini akan bekerja dengan google plus juga.

Untuk Facebook, Anda juga dapat merayapi paksa dengan membuat permintaan posting ke https://graph.facebook.com

{id: url,
scrape: true}
Purushothaman Ramraj
sumber
Inilah yang saya cari.
Lebah
Saya tidak bisa mendapatkan ini untuk bekerja memposting JSON di atas di Postman, tetapi memposting string teks mentah memang menyebabkan penyegaran:id=http://www.ridr.me&scrape=true
Philipp Sumi
1

Saya baru saja memposting solusi sederhana yang membutuhkan waktu 5 detik di sini di posting terkait di sini - Facebook debugger: Hapus seluruh cache situs

jawaban singkat ... ubah permalink Anda di situs alamat di pengaturan permalinks ke yang khusus. Saya baru saja menambahkan garis bawah.
/ _% postname% /
lalu facebook menghapus semuanya sebagai url baru, kiriman baru.

NowLiveLove
sumber
Ini saya sederhana dan keren. Sayangnya itu meninggalkan nama link yang tidak diinginkan.
Garavani
0

jika Anda menggunakan wordpress dengan plugin cache, pastikan Anda menghapus semua cache Anda. Pastikan juga gambar yang Anda gunakan memiliki ukuran facebook yang direkomendasikan: 1200 (w) x 630 (h) atau 600 x 315.

csandreas1
sumber
0

Jika Anda menggunakan plugin wordpress atau caching yang dikelola, Anda harus MENGHAPUS CACHE ANDA sebelum alat debugger facebook dapat mengambil info baru!

Saya telah menarik rambut saya selama berminggu-minggu untuk mencari tahu mengapa perubahan yang saya buat tidak akan muncul di debugger facebook selama 24 jam !!!! Cara mengatasinya adalah saya harus masuk ke dashboard wordpress saya, klik ikon GoDaddy di bagian atas, dan klik "flush cache". Saya pikir banyak host wordpress yang dikelola memiliki cache untuk mencari tahu cara membersihkannya dan Anda akan menjadi emas.

Tim Marchini
sumber
Menghapus cache Wordpress tidak akan membantu. Setidaknya untuk saya.
Garavani