Facebook Open Graph tidak membersihkan cache


174

Saya mengalami masalah dengan tag meta saya dengan Open Graph. Sepertinya Facebook sedang melakukan caching nilai-nilai lama dari meta tag saya. Nilai lama untuk Atributog:title dan og:urlmasih digunakan, meskipun saya sudah mengubahnya.

Saya menjalankan Lint di sebuah halaman di situs saya , dan ini muncul:

Tangkapan layar Facebook Open Graph lint

Perhatikan bahwa ada dua nilai untuk og:titledan og:url, dan yang terakhir menang. Namun, dua entri terakhir adalah entri LAMA yang saya gunakan untuk situs ini. Sekarang saya menggunakan tag meta ini (Anda dapat memverifikasi jika Anda melihat sumber HTML):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

Mengapa caching Facebook og:titledan og:url? Adakah yang mengalami masalah yang sama?


Saya kira ini seperti sejarah? Saya melihat FB mendapatkan yang terbaru titledan urluntuk Anda (di tabel info) jadi mengapa repot-repot?
ifaour

Masalahnya adalah, hitungan Suka Facebook masih untuk OLD og: url ( pinq.dk ) yaitu sekitar 200+, berbeda dengan menghitung untuk pinq.dk/tilbud/landsdaekkende/lissy
Ardee Aram

dan saya pikir ini bukan sejarah. Lebih banyak lagi: url disetel (seharusnya) disetel dua kali, yang terakhir adalah yang menang. Entah bagaimana, nilai-nilai lama yang sudah dihapus dari kode masih mempengaruhi nilai-nilai meta.
Ardee Aram

3
Nah, baca ini . Terutama bagian Mengedit Tag Meta . Saya tidak yakin apakah ini terkait tetapi mungkin membantu. Akan memeriksanya nanti, maaf sobat!
ifaour

2
Mungkin itu. "Anda dapat memperbarui atribut halaman Anda dengan memperbarui tag <meta> halaman Anda. Perhatikan bahwa og: judul dan og: jenis hanya dapat diedit pada awalnya - setelah halaman Anda menerima 50 suka judul diperbaiki, dan setelah halaman Anda menerima 10.000 suka jenisnya diperbaiki. Properti ini diperbaiki untuk menghindari pengguna mengejutkan yang sudah menyukai halaman. Mengubah judul atau tag jenis setelah batas ini tercapai tidak melakukan apa-apa, halaman Anda mempertahankan judul dan jenis asli. " Terima kasih ifaour!
Ardee Aram

Jawaban:


304
  1. Pergi ke http://developers.facebook.com/tools/debug
  2. Masukkan URL yang diikuti oleh fbrefresh=CAN_BE_ANYTHING

Contoh:

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. ATAU kunjungi: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

Saya mengalami masalah yang sama tadi malam, dan saya mendapat solusi ini dari beberapa situs web.

Facebook menyimpan thumbnail cache Anda. Itu tidak akan menyegarkan bahkan jika Anda menghapus thumnail / gambar dari server Anda. Tetapi Facebook memungkinkan Anda untuk menyegarkan dengan menggunakanfbrefresh

Saya harap ini membantu.


30
param fbrefresh mungkin tidak diperlukan karena alat debug menyegarkan objek tanpa itu.
alexandru.topliceanu

7
Itu tidak menghapus cache apa pun kecuali Anda menggunakan parameter ini.
Umur Kontacı

26
Tidak benar, menambahkan parameter tidak ada bedanya dengan operasi alat debug - tidak ada referensi ke parameter apa pun dalam alat debug atau kode scraper
Igy

7
Tidak perlu menggunakan parameter fbrefresh, tetapi Anda harus masuk sebagai admin untuk aplikasi FB yang memiliki domain itu, jika tidak cache tidak akan diperbarui.
Felipe Brahm

3
Saya dapat memverifikasi bahwa menambahkan parameter fbrefresh bekerja untuk saya. Jika saya membagikan URL itu menggunakan data lama meskipun debugger menunjukkan data yang benar. Tapi begitu saya menggunakan debugger dengan parameter fbrefresh maka bahkan saham biasa menggunakan data yang benar.
es krim

82

Pertanyaan yang paling banyak dipilih sudah usang:

Ini adalah satu-satunya 2 opsi yang harus digunakan pada November 2014 :

Untuk yang bukan pengembang

  1. Gunakan FB Debugger: https://developers.facebook.com/tools/debug/og/object
  2. Rekatkan url yang ingin Anda ulang. (Pastikan Anda menggunakan url yang sama dengan yang disertakan pada og: tag url Anda)
  3. Klik tombol Ambil informasi Mengikis lagi

Untuk Pengembang

  1. Buat panggilan GET secara terprogram ke URL ini: https://graph.facebook.com/?id=[YOUR_URL_HERE[&scrape=true (lihat: https://developers.facebook.com/docs/games_payments/takingpayments#scraping) )
  2. Pastikan tag og: url yang disertakan di kepala pada halaman itu cocok dengan yang Anda lewati.
  3. Anda bahkan dapat mem-parsing respons json untuk mendapatkan jumlah share dari URL itu.

Info Tambahan Tentang Memperbarui Gambar

  • Jika og: URL gambar tetap sama tetapi gambar telah benar-benar berubah, URL itu tidak akan diperbarui atau ditarik kembali oleh pencakar Facebook bahkan dengan melakukan hal di atas. (bahkan melewati? last_update = [TIMESTAMP] di akhir url gambar tidak berfungsi untuk saya).
  • Satu-satunya solusi yang efektif bagi saya adalah menetapkan nama baru pada gambar.

Catatan tentang pembaruan gambar atau video pada posting yang diposting sebelumnya:

  • Saat Anda memanggil debugger untuk menghapus perubahan pada tag: halaman Anda, semua bagian Facebook sebelumnya dari URL itu akan tetap menampilkan gambar / video lama. Tidak ada cara untuk memperbarui semua posting sebelumnya dan ini dirancang untuk alasan keamanan. Kalau tidak, seseorang akan bisa berpura-pura bahwa pengguna berbagi sesuatu yang sebenarnya tidak dia miliki.

Tampaknya tidak mengembalikan jumlah saham untuk halaman saya. Saya membaca di posting ini: " stackoverflow.com/questions/3581488/... " bahwa Anda harus memiliki tombol suka / bagikan Facebook pada halaman agar output dari titik akhir ini mengandung informasi apa pun.
WillyBurb

pastikan tag berada di KEPALA dan bukan TUBUH halaman Anda - debugger AKAN memperingatkan Anda tentang ini dan tetapi mereka akan diabaikan (ya saya tahu Anda menyebutkan ini saya hanya ingin menekankan titik)
Simon_Weaver

@Oriol Esteban apakah Anda menemukan cara lain untuk memperbarui gambar?
Petr

3
@Oriol Ketika saya baru-baru ini mencoba ini, saya harus mengirim POST ke URL ini (sesuai dengan developers.facebook.com/docs/sharing/opengraph/… )
Glen T

1
Ada gagasan tentang cara menggaruk cache saat mengubah url og: video ????? Saya melakukan edit kecil ke video saya dan mengubah url, dan facebook terus menunjukkan versi yang lama! Saya jelas melakukan awal dalam debug (yang ditunjukkan dengan benar di sana) tetapi tidak di pos! ... ini membuatku gila!
RayOnAir

19

Jika Anda memiliki banyak halaman dan tidak ingin me-refresh secara manual - Anda dapat melakukannya secara otomatis.

Katakanlah Anda memiliki halaman profil pengguna dengan foto:

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

Cukup tambahkan ini ke halaman Anda:

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Ini akan menyegarkan cache Facebook. Jika Anda menggunakan solusi jQuery, lihat "respons" di console.log - Anda akan menemukan di sana bidang "updated_time" dan informasi berguna lainnya.


ini adalah satu-satunya solusi yang konsisten yang akan menghancurkan cache gambar untuk saya. menggunakan fbrefreshtidak melakukan apa pun untuk masalah saya.
hellatan

Hai, saya mencoba metode ini tetapi saya mendapatkan beberapa kesalahan, $ this-> output ('<script type = "text / javascript"> $ (document) .ready (function () {$ .post (" graph .facebook.com ", {id:" '. $ this-> content [' canonical '].' ", kikis: true}, fungsi (respons) {console.log (respons);});}); < / script> ');
monsterboy

Saya mendapatkan kesalahan berikut Referensi Referensi Tidak Terjadi: $ tidak didefinisikan (fungsi anonim) bantuan akan sangat dihargai :)
monsterboy

@monsterboy $ - ini adalah jalan pintas ke fungsi jQuery. $ .post () sama dengan jQuery.post () Untuk menggunakan perpustakaan ini, Anda harus mengimpornya terlebih dahulu: <script src = " code.jquery.com/jquery-latest.min.js " type = "text / javascript "> </script>
Zhorzh Alexandr

@ZhorzhAlexandr thx untuk jawaban Anda tetapi saya menggunakan wordpress dan saya punya satu posting yang bisa diedit setiap hari jadi bagaimana saya bisa menggunakan skrip ini setiap kali sebelum berbagi?
Antwan

12

Thumbnail OG tampaknya tidak menyegarkan bahkan jika melewati variabel fbrefresh. Untuk memperbarui ini tanpa menunggu pembersihan otomatis, Anda harus mengubah nama file dari nilai tag meta yang terkait dan menyegarkan.


Menurut jawaban lain, Anda dapat memaksa penyegaran menggunakan fbrefreshparameter URL.
Sam Mussmann

1
@ SamMussmann Tampaknya ini hanya (jika itu terjadi) menyegarkan cache dari konten tag OG, dan BUKAN gambar yang sebenarnya ditemukan dari URL dari konten tersebut. EG: Anda menjaga tag OG tetap sama, tetapi mengubah file gambar (menjaga nama tetap sama) dan gambar itu sendiri akan tetap dalam cache. Saya tidak menemukan cara untuk menghapus ini selain, seperti kata Seb, Anda harus mengubah nama file gambar.
Nick M

@Nick M Apakah Anda menemukan solusi lain?
Petr

Terpecahkan. Saya menyelesaikannya dengan menambahkan? T = TIMESTAMP ke url gambar saya di skrip php, tempat kami membuat tag. Untuk sekarang ini berfungsi.
Petr

Baru saja mencoba mengubah nama file gambar dan memperbarui nilai tag meta, tidak berfungsi juga.
Antonio Ooi

7

Saya memiliki masalah yang sama menggunakan og:image, beberapa upaya untuk mengubah nama file atau menghapus cache FB tidak berfungsi baik melalui debugger facebook atau pengujian melalui akun yang sebenarnya.

Pedoman facebook baru menyatakan ukuran gambar harus 1200 x 630 atau memiliki rasio aspek, ini tampaknya salah, satu-satunya hal yang berhasil bagi saya adalah menggunakan gambar dengan dimensi persegi .

Sunting * Beberapa jam saya kembali menggunakan 1200 x 630 dan secara ajaib bekerja, itu ajaib.

Saya juga mengganti nama file ke f * ^ * kfacebook.jpg, tidak yakin itu membantu tetapi rasanya enak.


6

Pada dasarnya, jawabannya adalah kesabaran;)

Saya memeriksa Linter pagi ini, dan tampilan og: title dan og: url benar, tanpa nilai yang berlebihan. Saya kira FaceBook secara otomatis menghapus cache pada beberapa interval tertentu. Saya hanya harus menunggu.

masukkan deskripsi gambar di sini


Dari facebook untuk pengembang , Cache objek kedaluwarsa setiap 7 hari, dan Facebook akan secara otomatis membentuk ulang objek saat digunakan berikutnya.
Venugopal

4

Kami baru saja menemukan ini, ternyata, kami tidak mengecek url yang benar, karena url asli memiliki string kueri (ya, halaman berbeda sejauh bot terkait).

http://example.com/

! ==

http://example.com/?utm_campaign=foo

Linter yang akan recache halaman Anda, Anda tidak harus menunggu.



4

Ooook, akhirnya membantu (saya menggunakan IP.Board). Yang harus saya lakukan adalah:

  1. Ubah url og: gambar di situs web saya (Konfigurasi umum).
  2. Coba metode ini dengan? Fbrefresh = 1154464gd56

Terima kasih kepada penulis untuk utas ini!

EDIT: Terlebih lagi yang perlu Anda ingat tentang persyaratan gambar. Untuk saat ini (Januari 2013): - setidaknya 200 px di kedua arah - rasio maksimum 3: 1



3

Satu hal yang perlu ditambahkan, url sensitif huruf . Perhatikan bahwa:

apps.facebook.com/ HELLO

berbeda di mata linter kemudian

apps.facebook.com/ halo

Pastikan untuk menggunakan url situs persis yang dimasukkan dalam pengaturan pengembang untuk aplikasi. Linter akan mengembalikan properti sebaliknya tetapi tidak akan menyegarkan cache.


3

Maaf, tetapi jawaban yang benar adalah:

Tidak ada cara bukti bodoh untuk memperbarui grafik terbuka dan: url gambar dengan hasil langsung. Itu di-cache sampai pembaruan fb (dilaporkan setiap 24 jam)

Berikut adalah hal-hal yang telah dilaporkan berhasil oleh orang lain tetapi saya telah NOL sukses dengan salah satu dari mereka.

  • Memilih "Ambil informasi gesekan baru"
  • Mengubah nama file gambar aktual dan / atau menghapus yang asli
  • Menambahkan string kueri ke url gambar dengan menambahkan TIMESTAMP PHP atau apa pun
  • Menambahkan string kueri "... yoursite.com/?fbrefresh=anything" ke debugger mengambil url
  • Memilih tautan API API di bagian bawah halaman pengembang
  • Memilih untuk melihat secara tepat apa yang dilihat oleh pengikis - tidak muncul untuk meminta data pengikisan yang tidak di-cache secara real-time, tetap menampilkan url gambar yang di-cache bahkan jika file tersebut tidak ada lagi

Memeriksa kode Anda selalu merupakan tempat untuk memastikan bahwa itu bukan masalah dengan cache browser atau layanan caching. Jika informasi meta terkini dalam kode Anda dan Anda sudah mencoba semua hal di atas (kecuali saran lain membuahkan hasil), jawaban yang benar adalah Anda tidak dapat melakukan apa pun kecuali menunggu .


1

Saya telah menemukan bahwa jika gambar Anda adalah 72dpi itu akan memberi Anda kesalahan ukuran gambar. Gunakan 96dpi sebagai gantinya. Semoga ini membantu.


1
  1. Pergi ke http://developers.facebook.com/tools/debug

  2. Rekatkan di url halaman dan klik debug. Jika situs Anda menggunakan alias url, pastikan Anda menggunakan url yang sama dengan yang digunakan Facebook untuk laman yang Anda bagikan (contoh: di Drupal gunakan jalur simpul / * alih-alih alias jika laman tersebut dibagikan melalui url itu).

  3. Klik di bagian "Bagikan pratinjau" pada tautan "Lihat ini di dialog berbagi"

Solusi terbaik! Terima kasih
MeV


0

Punya pengalaman serupa. Tautan situs web menunjukkan 404 dalam pratinjau yang dihasilkan facebook. Ternyata og: metadata url salah. Kami telah memperbaikinya beberapa hari yang lalu tetapi masih melihat 404 pada pratinjau. Kami menggunakan alat di https://developers.facebook.com/tools/debug/ dan itu memaksa penyegaran (tidak harus menambahkan parameter apa pun dengan cara). Dalam kasus kami, Facebook tidak menyegarkan cache setelah 24 berjam-jam tetapi alat itu membantu memaksanya.


0

Ini adalah cache, ofc itu refresh, itulah yang harus dilakukan oleh cache sesekali. Jadi menunggu pada akhirnya akan berhasil, tetapi kadang-kadang Anda perlu melakukannya lebih cepat. Mengubah nama file berfungsi.


Jadi mengapa -1? Secara harfiah, tidak ada yang menjawab solusi paling sederhana untuk MENGUBAH FILENAME dan itu benar-benar berfungsi tidak seperti jawaban lainnya (+/- 5) memilih yang tidak atau paling tidak mereka lakukan tetapi sudah usang. Ofc jika Anda tidak dapat mengubah nama file karena suatu alasan, jawaban ini tidak akan membantu Anda.
Srneczek

0

Saya juga mengalami masalah ini. Pengikis menampilkan informasi yang benar, tetapi url berbagi masih diisi dengan data lama.

Cara saya mengatasinya adalah dengan menggunakan metode umpan, bukan berbagi, dan kemudian mengisi data secara manual (yang tidak terpapar dengan metode berbagi)

Sesuatu seperti ini:

shareToFB = () => {
    window.FB.ui({
    method: 'feed',
    link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`,
    name: 'THIS WILL OVERRIDE OG:TITLE TAG',
    description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG',
    caption: 'THIS WILL OVERRIDE THE OG:URL TAG'
  });
};

0

Sangat mudah dipecahkan. Diuji dan bekerja. Anda hanya perlu membuat url baru ketika Anda memperbarui meta tag Anda. Ini semudah menambahkan "& cacheBuster = 1" ke url Anda. Jika Anda mengubah tag meta, cukup tambahkan "& cacheBuster = 2"

URL asli

www.example.com

URL saat tag meta diperbarui:

www.example.com?cacheBuster=1

URL saat tag meta diperbarui lagi:

www.example.com?cacheBuster=2

Facebook akan memperlakukan masing-masing seperti url baru dan mendapatkan data meta baru.


0

Bertahun-tahun kemudian dan ini masih merupakan masalah umum, tetapi itu tidak selalu cache facebook: Ini adalah kesalahan manusia yang sering terjadi (izinkan saya menjelaskan lebih lanjut)

OG: TYPE mempengaruhi goresan gambar Anda:

  1. https://ogp.me/#type_article tidak sama dengan https://ogp.me/#type_website

Ketahuilah bahwa og: type = situs web akan menyebabkan setiap / sub-halaman / dari url tersebut menjadi "kanonik". Ini berarti Anda akan mengalami kesulitan untuk memperbarui gambar Anda menggunakan scraper tidak peduli apa yang Anda lakukan.

Pertimbangkan ini "asumsi dan kesalahan umum"

- <meta property="og:type" content="website" />=> https://www.example.org (parent)
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/child -2 /
- Ergo: /sub-page/dan /child-2/akan mewarisiog:image dari induknya

Itu bukan "semua situs web", 1 adalah situs web, yang lain adalah artikel.

Jika Anda melakukan itu, Facebook akan menganggap semua itu kanonik dan itu akan menempatkan gambar PERTAMA: semuanya. (coba, Anda akan melihat) - jika Anda mengatur og: url menjadi root atau domain induk Anda, Anda telah memberi tahu Facebook bahwa semuanya adalah kanonik. (Ada alasan bagus untuk itu, tapi itu di luar topik)

Pertimbangkan solusi ini (itulah yang kebanyakan orang "benar-benar inginkan")

- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/child-2/

Jika Anda melakukannya sekarang, Facebook akan memberi Anda jauh lebih sedikit masalah dengan mengikis gambar BARU Anda.

Sebagai penutup, YA penghancur cache, vars acak, mengubah url, dan saran di sini dapat berfungsi, tetapi mereka akan tampak seperti "voodoo intermiten" jika og:typetidak ditentukan dengan benar.

PS: ingat bahwa cache CDN atau serveride akan berfungsi untuk scraper Facebook bahkan jika Anda "berpikir" Anda dapat melihat versi terbaru. (Saya tidak akan menghabiskan waktu untuk hal ini selain menunjukkan bahwa itu akan membuang-buang waktu Anda jika tidak diperiksa dua kali.)


0

Saya memiliki masalah yang berbeda, tetapi serupa dengan Facebook baru-baru ini, dan menemukan bahwa halaman scraper / debug yang disebutkan, tidak muncul untuk membaca halaman apa pun secara keseluruhan. Properti meta saya untuk Grafik Terbuka lebih jauh di bagian kepala, dan scraper akan terus-menerus memberi tahu saya bahwa spesifikasi gambar tidak benar, dan bagaimanapun juga akan menggunakan versi cache. Saya memindahkan tag Open Graph lebih jauh ke atas dalam kode, dekat bagian paling atas halaman, dan kemudian semuanya bekerja dengan sempurna, setiap saat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.