Facebook Open Graph önbelleği temizlemiyor


174

Open Graph ile meta etiketlerimle sorunlar yaşıyorum. Facebook meta etiketlerimin eski değerlerini önbelleğe alıyor gibi görünüyor. Öznitelikler için eski değerler og:titleve og:urlzaten değiştirmiş olmama rağmen hala kullanılıyor.

Lint'i sitemdeki bir sayfada çalıştırdım ve bu ortaya çıktı:

Facebook Open Graph lint ekran görüntüsü

Orada Bildirimi iki değer için olduğunu og:titleve og:urlve sonuncusu galip geldi. Ancak, son iki girdi bu site için kullandığım eski girdiler . Şu anda bu meta etiketleri kullanıyorum (HTML'nin kaynağını görüntüleyip görüntülemediğinizi doğrulayabilirsiniz):

<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" />

Facebook neden önbelleğe alıyor og:titleve og:url? Aynı sorunu yaşayan var mı?


Sanırım bu bir tarih gibi mi? FB'yi en son titleve urlsizin için (bilgi tablosunda) aldığını görüyorum, neden rahatsız oluyorsunuz?
ifaour

Url (: Sorun sayımı gibi facebook ESKİ og için hala vardır pinq.dk için sayma aksine, etrafında 200+ ise) pinq.dk/tilbud/landsdaekkende/lissy
Ardee Aram

ve bunun tarih olduğunu sanmıyorum. Daha fazla og: url iki kez ayarlandı, sonuncusu galip geldi. Her nasılsa, koddan zaten kaldırılmış olan eski değerler hala meta değerleri etkiler.
Ardee Aram

3
Eh, bir okuma var bu . Özellikle Meta Etiketleri Düzenleme bölümü. Alakalı olup olmadığından emin değilim ama yardımcı olabilir. Bunu daha sonra kontrol edeceğim, üzgünüm dostum!
ifaour

2
Muhtemelen budur. "Sayfanızın <meta> etiketlerini güncelleyerek sayfanızın niteliklerini güncelleyebilirsiniz. Og: title ve og: type öğelerinin yalnızca başlangıçta düzenlenebilir olduğunu unutmayın; sayfanızın 50 beğeni aldıktan sonra, başlık sabit hale gelir ve sayfanızın 10.000 beğenisini alır Bu özellikler, sayfayı zaten beğenen şaşırtıcı kullanıcıları önlemek için düzeltildi. Bu sınırlara ulaşıldıktan sonra başlık veya tür etiketlerini değiştirmek hiçbir şey yapmaz, sayfanız orijinal başlığı ve türü korur. " Teşekkürler ifaour!
Ardee Aram

Yanıtlar:


304
  1. Http://developers.facebook.com/tools/debug adresine gidin.
  2. URL'yi şu şekilde girin: fbrefresh=CAN_BE_ANYTHING

Örnekler:

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

Dün gece aynı sorunu yaşıyordum ve bu çözümü bazı web sitelerinden aldım.

Facebook önbellek küçük resminizi kaydeder. Sunucunuzdan thumnail / resmi silseniz bile yenilenmez. Ancak Facebook,fbrefresh

Umarım bu yardımcı olur.


30
hata ayıklama aracı nesneyi onsuz yenilediğinden param fbrefresh gerekli olmayabilir.
alexandru.topliceanu

7
Bu parametreyi kullanmadığınız sürece önbelleği temizlemez.
Umur Kontacı

26
Untrue, bu parametrenin eklenmesi, hata ayıklama aracının çalışmasında bir fark
yaratmaz

7
Fbrefresh parametresini kullanmanıza gerek yoktur, ancak bu etki alanının sahibi olan FB uygulaması için yönetici olarak oturum açmanız gerekir, aksi takdirde önbellek güncellenmez.
Felipe Brahm

3
Fbrefresh parametresini eklemenin benim için işe yaradığını doğrulayabilirim. URL'yi paylaşırsam hata ayıklayıcı doğru verileri göstermesine rağmen eski verileri kullandı. Ama hata ayıklayıcıyı fbrefresh parametresiyle kullandıktan sonra normal paylaşımlar bile doğru verileri kullandı.
dondurma

82

En çok oylanan soru oldukça eski:

Kasım 2014 itibariyle kullanılması gereken sadece 2 seçenek :

Geliştiriciler için

  1. FB Hata Ayıklayıcı'yı kullanın: https://developers.facebook.com/tools/debug/og/object
  2. Önbelleğe almak istediğiniz URL'yi yapıştırın. (Og: url etiketinizde bulunan URL'yi kullandığınızdan emin olun)
  3. Kazıma Bilgilerini Tekrar Al Düğmesini tıklayın

Geliştiriciler için

  1. Bu URL'yi programlı olarak GET çağrısı yapın: https://graph.facebook.com/?id=[YOUR_URL_HERE closeup&scrape= true (bkz: https://developers.facebook.com/docs/games_payments/takingpayments#scraping )
  2. Bu sayfadaki baştaki og: url etiketinin, geçtiğiniz etiketle eşleştiğinden emin olun.
  3. bu URL'nin paylaşım sayısını almak için json yanıtını ayrıştırabilirsiniz.

Resimleri Güncelleme Hakkında Ek Bilgi

  • Og: resim URL'si aynı kalır, ancak resim gerçekten değiştiyse, yukarıdakileri bile yapmadan Facebook kazıyıcıları tarafından güncellenmez veya yeniden önbelleğe alınmaz. (resim URL'sinin sonunda bir? last_update = [TIMESTAMP] iletimi bile benim için çalışmadı).
  • Benim için tek etkili çözüm, resme yeni bir ad atamak oldu.

Daha önce yayınlanan yayınlardaki resim veya video güncellemeleriyle ilgili not:

  • Hata ayıklayıcıyı sayfanızın og: etiketlerindeki değişiklikleri not etmek için çağırdığınızda, o URL'nin önceki tüm Facebook paylaşımları eski görüntüyü / videoyu göstermeye devam eder. Önceki tüm yayınları güncellemenin bir yolu yoktur ve bu, güvenlik nedenleriyle tasarım gereğidir. Aksi takdirde, bir kullanıcı gerçekte paylaşmadığı bir şeyi paylaşmış gibi davranabilir.

Sayfam için paylaşım sayısını döndürmüyor gibi görünüyor. Bu yazıda okudum: " stackoverflow.com/questions/3581488/… " sayfasında, bu bitiş noktasının çıktısının herhangi bir bilgi içermesi için sayfada bir Facebook beğen / paylaş düğmesi olması gerekiyor.
WillyBurb

etiketlerin sayfanızın GÖVDESİNDE OLMADIĞINDAN emin olun - hata ayıklayıcı sizi bu konuda uyarır ve ihmal edilir (evet, bundan bahsettiğinizi biliyorum sadece noktayı vurgulamak istedim)
Simon_Weaver

@Oriol Esteban görüntüleri güncellemenin başka yollarını buldunuz mu?
Petr

3
@Oriol Yakın zamanda bunu denediğimde, bu URL'ye POST göndermem gerekiyordu ( developers.facebook.com/docs/sharing/opengraph/… )
Glen T

1
Og: video URL'sini değiştirirken önbelleğin nasıl çizileceği hakkında herhangi bir fikir ????? Videomda küçük bir düzenleme yaptım ve URL'yi değiştirdim ve facebook eski sürümü göstermeye devam ediyor! Açıkçası hata ayıklama (bir doğru orada gösterir) çizik yaptım ama yazı değil! ... bu beni delirtiyor!
RayOnAir

19

Çok sayfanız varsa ve bunları manuel olarak yenilemek istemiyorsanız, otomatik olarak yapabilirsiniz.

Fotoğraflı bir kullanıcı profili sayfanız olduğunu varsayalım:

$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; ?>"

Bunu sayfanıza eklemeniz yeterlidir:

// 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");

Bu, Facebook önbelleğini yenileyecektir. JQuery çözümünü kullanıyorsanız, console.log içinde "yanıt" a bakın - orada "updated_time" alanı ve diğer faydalı bilgileri bulacaksınız.


bu benim için görüntü önbelleğini bozan tek tutarlı çözümdü. kullanmak fbrefreshbenim sorunum için hiçbir şey yapmadı.
14:39

Merhaba, bu yöntemi deniyorum ama bazı hatalar alıyorum, $ this-> output ('<script type = "text / javascript"> $ (document) .ready (function () {$ .post (" grafiği .facebook.com ", {id:" '. $ this-> içerik [' standart '].' ", kazıma: doğru}, işlev (yanıt) {console.log (yanıt);});}); < / script> ');
monsterboy

Aşağıdaki hatayı alıyorum Uncaught ReferenceError: $ tanımlı değil (anonim işlev) herhangi bir yardım çok takdir edilecektir :)
monsterboy

@monsterboy $ - bu jQuery işlevinin bir kısayoludur. $ .post () jQuery.post () ile aynıdır. Bu kütüphaneyi kullanmak için önce kütüphaneyi içe aktarmanız gerekir: <script src = " code.jquery.com/jquery-latest.min.js " type = "text / javascript "> </script>
Zhorzh Alexandr

Ur cevap için im @ZhorzhAlexandr thx ama im wordpress kullanarak ve nasıl paylaşmadan önce her zaman bu komut dosyası kullanabilirsiniz her gün düzenlenebilir bir yazı var?
Antwan

12

OG küçük resmi, fbrefresh değişkenini geçse bile yenilenmiyor gibi görünüyor. Otomatik temizlemeyi beklemeden bunu güncellemek için, küçük resim ile ilişkili meta etiket değerinin dosya adını değiştirmeniz ve yenilemeniz gerekir.


Diğer yanıtlara göre, fbrefreshURL parametresini kullanarak yenilemeyi zorlayabilirsiniz .
Sam Mussmann

1
@SamMussmann Öyle görünüyor ki (eğer olsa bile) OG etiketi içeriğinin önbelleğini yeniliyor ve söz konusu içeriğin URL'sinde bulunan gerçek resmi DEĞİL. EG: OG etiketlerini aynı tutarsınız, ancak görüntü dosyasını değiştirir (adı aynı kalır) ve görüntünün kendisi önbellekte kalır. Bunu temizlemek için bir yol bulamadım, Seb'in dediği gibi, görüntü dosya adını değiştirmeniz gerekir.
Nick M

@Nick M Başka çözüm buldunuz mu?
Petr

Çözüldü. Ben php komut dosyasında, görüntü üretti? T = TIMESTAMP ekleyerek nerede etiketleri üretti ile çözüldü. Şimdilik işe yarıyor.
Petr

Sadece resim dosyasını yeniden adlandırmayı denedim ve meta etiket değerini güncelleyin, çok çalışmıyor.
Antonio Ooi

7

Aynı sorunları kullanarak og:image , dosyayı yeniden adlandırmak veya FB önbelleğini temizlemek için birkaç girişim ya facebook hata ayıklayıcı veya gerçek bir hesap üzerinden test çalışmadı.

Yeni facebook yönergeleri görüntü boyutunun 1200 x 630 olması gerektiğini veya bu en boy oranına sahip olduğunu söylüyor, bu yanlış görünüyor, benim için çalışan tek şey kare boyutlarında bir görüntü kullanmaktı .

Düzenle* Birkaç saat 1200 x 630 kullanmak için geri döndüm ve sihirli bir şekilde çalıştı, büyülü oldu.

Ayrıca dosyaları f * ^ * kfacebook.jpg olarak yeniden adlandırdım, emin değilim ama iyi hissettim.


6

Temel olarak, cevap sabırdır;)

Bu sabah Linter'ı kontrol ettim ve og: title ve og: url, gereksiz değerler olmadan doğru bir şekilde görüntüleniyor. Sanırım FaceBook önbelleğini belirli aralıklarla otomatik olarak temizler. Sadece beklemek zorundayım.

resim açıklamasını buraya girin


Gönderen geliştiriciler için Facebook'a , nesne önbellek 7 günde sona erer ve sonraki kullanılan zaman Facebook otomatik nesne yeniden kopyalandığı edecektir.
Venugopal

4

Gerçek URL'nin bir sorgu dizesi (du, bir bot söz konusu olduğunda farklı bir sayfa) olduğu için, bununla birlikte, doğru URL'yi yayınlamadık.

http://example.com/

! ==

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

Linter sayfanızı yeniden önbelleğe alacak , beklemek zorunda değilsiniz.



4

Ooook, sonunda yardımcı oldu (IP.Board kullanıyorum). Ne yapmam gerekiyordu:

  1. Web sitemdeki og: resminin URL'sini değiştirin (Genel yapılandırma).
  2. Bu yöntemi? Fbrefresh = 1154464gd56 ile deneyin

Bu konu için yazarına teşekkürler!

EDIT: Görüntü gereksinimleri hakkında hatırlamanız gereken daha fazla şey var. Şimdilik (Ocak 2013): - her iki yönde en az 200 piksel - maksimum oran 3: 1



3

Eklenecek bir şey var, url büyük / küçük harfe duyarlıdır . Bunu not et:

apps.facebook.com/ HELLO

o zaman linterlerin gözlerinde farklı

apps.facebook.com/ merhaba

Uygulamanın geliştirici ayarlarında girilen tam site URL'sini kullandığınızdan emin olun. Linter özellikleri başka şekilde döndürür, ancak önbelleği yenilemez.


3

Üzgünüm millet ama doğru cevap:

Açık grafik og: image url'sini anında sonuçla güncellemenin aptalca bir yolu yoktur. FB güncellemelerine kadar önbelleğe alınır (bildirilen her 24 saatte bir)

İşte başkaları tarafından çalıştığı bildirilen şeyler ama bunlardan herhangi birinde SIFIR başarısı yakaladım.

  • "Yeni kazıma bilgilerini getir" i seçme
  • Gerçek görüntü dosya adını değiştirme ve / veya orijinali silme
  • Bir PHP TIMESTAMP veya? Herhangi bir şey ekleyerek resim URL'sine sorgu dizesi ekleme
  • Hata ayıklayıcı getirme URL'sine "... siteniz.com/?fbrefresh=anything" sorgu dizesini ekleme
  • Og dev sayfasının altındaki grafik API bağlantısını seçme
  • Kazıyıcının tam olarak ne gördüğünü görmek seçildiğinde - gerçek zamanlı önbelleğe alınmamış kazıma verileri istemiyor gibi görünüyor, dosya artık mevcut olmasa bile önbelleğe alınmış görüntü URL'sini gösteriyor

Kodunuzu incelemek her zaman tarayıcı önbelleği veya bazı önbellekleme hizmeti ile ilgili bir sorun olmadığını doğrulamak için bir noktadır. Meta bilgileri kodunuzda güncelse ve yukarıdakilerin tümünü denediyseniz (başka bir öneri gerçekleşmediği sürece), doğru cevap beklemekten başka bir şey yapamayacağınızdır .


1

Resminiz 72 dpi ise, size görüntü boyutu hatası vereceğini öğrendim. Bunun yerine 96 dpi kullanın. Bu yardımcı olur umarım.


1
  1. Http://developers.facebook.com/tools/debug adresine gidin.

  2. Sayfanın url'sine yapıştırın ve hata ayıklama'yı tıklayın. Siteniz URL takma adları kullanıyorsa, paylaştığınız sayfa için Facebook ile aynı URL'yi kullandığınızdan emin olun (örnek: Drupal'da, sayfa bu URL aracılığıyla paylaşılıyorsa takma ad yerine düğüm / * yolunu kullanın).

  3. "Paylaşım iletişim kutusunda bunu görün" bağlantısındaki "Paylaşım önizlemesi" bölümünü tıklayın

En iyi çözüm! Teşekkür ederim
MeV


0

Benzer bir deneyim oldu. Web sitesi bağlantısı, facebook'un oluşturduğu önizlemede 404 gösteriliyordu. Og: url meta verileri yanlış çıktı. Zaten birkaç gün önce düzeltmiştik ama yine de önizlemede bir 404 görüyorduk. Aracı https://developers.facebook.com/tools/debug/ adresinde kullandık ve yenilemeyi zorladı (bu arada herhangi bir parametre eklemek zorunda değildi) Bizim durumumuzda, Facebook 24 saat sonra önbelleği yenilemedi ancak araç onu zorlamaya yardımcı oldu.


0

Bu bir önbellektir, yeniler, önbelleğin arada bir yaptığı şey budur. Bu yüzden beklemek eninde sonunda işe yarayacaktır, ancak bazen bunu daha hızlı yapmanız gerekir. Dosya adının değiştirilmesi çalışır.


Peki neden -1? Kelimenin tam anlamıyla kimse, DOSYADI DEĞİŞTİRMEK için en basit çözümü cevaplamadı ve aslında oylanmayan veya en azından yaptıkları ancak modası geçmiş olan diğer (+/- 5) cevaplar gibi çalışmıyor. Ofc dosya adını herhangi bir nedenden dolayı değiştiremezseniz, bu cevap size yardımcı olmaz.
Srneczek

0

Ben de bu sorunu yaşıyordum. Kazıyıcı doğru bilgileri gösterir, ancak paylaşım URL'si hala eski verilerle doldurulmuştur.

Bunu aşmanın yolu, paylaşım yerine feed yöntemini kullanmak ve ardından verileri manuel olarak doldurmaktı (paylaşım yöntemiyle açıklanmadı).

Bunun gibi bir şey:

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

Gerçekten kolay çözmek. Test edilmiş ve çalışıyor. Meta etiketlerinizi güncellediğinizde yeni bir URL oluşturmanız yeterlidir. URL'nize "& cacheBuster = 1" eklemek kadar basit. Meta etiketleri değiştirirseniz, "& cacheBuster = 2" değerini artırmanız yeterlidir.

Orijinal URL

www.example.com

OG meta etiketleri güncellendiğinde URL:

www.example.com?cacheBuster=1

OG meta etiketleri tekrar güncellendiğinde URL:

www.example.com?cacheBuster=2

Facebook her birine yeni bir URL gibi davranacak ve yeni meta veriler alacak.


0

Yıllar sonra ve bu hala yaygın bir sorundur, ancak her zaman facebook'un önbelleği değildir: Çok sık insan hatasıdır (ayrıntılandırmama izin ver)

OG: TYPE resminizi kazımayı etkiler:

  1. https://ogp.me/#type_article değil aynı https://ogp.me/#type_website

Og: type = web sitesinin, bu url'nin / alt sayfalarının / "kurallı" hale gelmesine neden olacağını unutmayın. Bu, ne yaparsanız yapın kazıyıcıyı kullanarak görüntülerinizi güncellemede sorun yaşayacağınız anlamına gelir.

Bu "varsayım ve yaygın hata" yı düşünün

- <meta property="og:type" content="website" />=> https://www.example.org (ebeveyn)
- <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/ve /child-2/devralacakog:image ebeveynin

Bunlar "tüm web siteleri" değil, 1 bir web sitesi, diğerleri makale.

Bunu yaparsanız, Facebook bunların hepsini kanonik olarak görür ve İLK og: imajını hepsine koyar. (deneyin, göreceksiniz) - og: url'yi kök veya üst alanınız olarak ayarladıysanız, facebook'a hepsinin standart olduğunu söylediniz. (bunun için iyi bir neden var, ama konu dışı)

Bu çözümü düşünün (çoğu insanın "gerçekten istediği" budur)

- <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/

Bunu şimdi yaparsanız, Facebook YENİ resimlerinizi kazıma konusunda size çok daha az sorun verecektir.

Kapanışta ise EVET önbellek busters, rastgele değişkenler, değişen URL'ler ve öneriler burada çalışabilir, ancak bunlar gibi gelecek "kesintili voodoo" eğer og:typedoğru belirtilmemiştir.

Not: bir CDN veya sunucu tarafı önbelleğinin en son sürümü görebildiğinizi düşünseniz bile Facebook'un sıyırıcısına hizmet edeceğini unutmayın. (Çift kontrol edilmezse zamanınızın muazzam miktarlarını boşa harcayacağına işaret etmek dışında bunun için herhangi bir zaman harcamayacağım.)


0

Son zamanlarda Facebook ile farklı ama benzer bir sorun yaşadım ve bahsedilen kazıyıcı / hata ayıklama sayfasının, herhangi bir sayfayı tamamen okumadığını gördüm. Açık Grafik için meta özelliklerim kafa bölümünde daha da aşağıdaydı ve kazıyıcı bana sürekli olarak resim spesifikasyonunun doğru olmadığını ve önbelleğe alınmış bir sürümü kullanacağını bildiriyordu. Açık Grafik etiketlerini, kodun içinde, sayfanın en üstüne yakın bir yere taşıdım ve her şey her seferinde mükemmel çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.