it-swarm-tr.com

Facebook Open Graph önbelleğini temizlemiyor

Open Graph ile meta etiketlerimde sorun yaşıyorum. Görünüşe göre Facebook meta etiketlerimin eski değerlerini önbelleğe alıyor. Öznitelikler için eski değerler og:title ve og:url onları değiştirmiş olmama rağmen hala kullanılıyor.

Lint 'i koştum sitemdeki bir sayfa ve bu belirdi:

Facebook Open Graph lint screenshot

og:title ve og:url için iki değer olduğuna ve sonuncusunun geçerli olduğuna dikkat edin. Ancak, Son iki giriş, bu site için kullandığım ESKİ girişlerdir . Şu anda şu meta etiketleri kullanıyorum (HTML'nin kaynağını görüp görmediğ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:title ve og:url? Aynı sorunu yaşayan var mı?

169
Ardee Aram
  1. Git http://developers.facebook.com/tools/debug
  2. URL'yi fbrefresh=CAN_BE_ANYTHING ile takip ederek girin

Örnekler:

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

Dün gece de aynı sorunu yaşıyordum ve bu çözümü bir web sitesinden aldım.

Facebook önbellek minik resmini kaydeder. Sunucudan thumnail/resim silseniz bile yenilenmez. Ancak Facebook, fbrefresh kullanarak yenileme yapmanızı sağlar

Umarım bu yardımcı olur.

301
P.C.

En çok oylanan soru oldukça eski:

Bunlar, Kasım 2014 itibariyle kullanılması gereken tek seçenek.

Geliştiriciler için

  1. FB Debugger'ı kullanın: https://developers.facebook.com/tools/debug/og/object
  2. Yeniden yazdırmak istediğiniz URL'yi yapıştırın. (Og: url etiketinde bulunan aynı url'yi kullandığınızdan emin olun)
  3. Çekme Bilgilerini Yeniden Al düğmesini tıklayın.

Geliştiriciler için

  1. Bu URL'ye programlı bir GET çağrısı yapın: https://graph.facebook.com/?id= [YOUR_URL_HERE] & scrape = true (bkz: https: //developers.facebook). com/docs/games_payments/takingpayments # kazıma )
  2. Bu sayfadaki kafada bulunan og: url etiketinin geçmekte olduğunuz etiketle aynı olduğundan emin olun.
  3. json cevabını o URL'nin paylaşım sayısını almak için bile ayrıştırabilirsiniz.

Görüntüleri Güncelleme Hakkında Ek Bilgi

  • Eğer og: image URL aynı kalırsa, ancak resim gerçekte değişmişse, yukarıdakileri yapsa bile Facebook hurdacıları tarafından güncellenmeyecek veya yeniden düzenlenmeyecektir. (Resim URL'sinin sonunda bir? last_update = [TIMESTAMP] bile geçmiyordu benim için işe yaramadı).
  • Benim için tek etkili çözüm, resme yeni bir isim vermekti.

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

  • Og: sayfanızın etiketlerinde değişiklikleri silmek için hata ayıklayıcısını aradığınızda, söz konusu URL'nin önceki tüm Facebook paylaşımları eski resim/videoyu göstermeye devam edecektir. Önceki tüm gönderileri güncellemenin bir yolu yoktur ve güvenlik nedeniyle tasarım bu şekilde yapılır. Aksi takdirde, bir kullanıcı bir kullanıcının gerçekte paylaşmadığı bir şeyi paylaştığını iddia edebilirdi.
79
Oriol Esteban

Çok sayıda sayfanız varsa ve bunları el ile yenilemek istemiyorsanız, bunu otomatik olarak yapabilirsiniz.

Fotoğraflı kullanıcı profil 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. Eğer jQuery çözümünü kullanıyorsanız, console.log içindeki "yanıt" a bakın - orada "updated_time" alanını ve diğer yararlı bilgileri bulacaksınız.

19
Zhorzh Alexandr

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

12
Seb

og:image kullanarak aynı sorunları yaşadım, dosyayı yeniden adlandırmak veya FB önbelleğini temizlemek için yapılan birkaç deneme ya facebook hata ayıklayıcısını kullanarak çalışmadı ya da gerçek bir hesapla test etmedi.

Yeni facebook kurallarına göre görüntü boyutu 1200 x 630 olmalı ya da bu en boy oranına sahip olmalı, bu yanlış görünüyor, benim için çalışan tek şey kare boyutlar olan bir resim kullanmaktı.

Edit * Birkaç saat sonra 1200 x 630 kullanmaya başladım ve büyülü bir şekilde çalıştı, büyülü oldu.

Ayrıca dosyaları f * ^ * kfacebook.jpg olarak değiştirdim, yardım ettiğinden emin değildim ama iyi hissettirdi.

6
Wyck

Temel olarak, cevap sabırdır;)

Bu sabah Linter'i kontrol ettim ve og: title ve og: url, gereksiz değerler olmadan düzgün görüntüleniyor. Sanırım FaceBook otomatik olarak önbelleğini belirli bir aralıkta siler. Sadece beklemeliyim.

enter image description here

6
Ardee Aram

Ooook, nihayet yardımcı oldu (IP.Board kullanıyorum). Yapmam gereken şey:

  1. Og: URL'sini web sitemde değiştir (Genel yapılandırma).
  2. Bu yöntemi? Fbrefresh = 1154464Gd56 ile deneyin

Bu konu için yazara teşekkür ederiz!

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

4
Matt

Görünüşe göre, gerçek URL'de bir sorgu dizgisi olduğu için doğru URL'yi değil.

http://example.com/

! ==

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

Linter will sayfanızı önbelleğe alır, beklemeniz gerekmez.

4
Ryan Florence

Evet, facebook her 24 saatte bir önbelleği otomatik olarak temizler: Aslında facebook sayfaları sıyrır ve her 24 saatte bir önbelleği günceller https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo .

4
kbsbng
  1. FB sayfasını ziyaret edin https://developers.facebook.com/tools/debug/og/object/
  2. Etki alanınızı girin.
  3. "Yeni kazıma bilgilerini al" düğmesini tıklayın
  4. Tamam
4
Cropis

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

Açık grafiği güncellemenin aptalca bir yolu yoktur og: anında sonuç veren resim url'si. Fb güncellemesine kadar önbelleğe alınır (her 24 saatte bir bildirilir)

İşte başkaları tarafından çalıştığı bildirilen şeyler ama ben bunlardan herhangi birinde SIFIR başarı elde ettim.

  • "Yeni kazıma bilgilerini al" seçimi
  • Gerçek resim dosya adını değiştirme ve/veya orijinali silme
  • Resim URL'sine bir sorgu dizesi ekleme, PHP TIMESTAMP veya? Herhangi bir şey ekleyerek
  • Hata ayıklayıcı getirme URL'sine "... yoursite.com/?fbrefresh=anything" sorgu dizesini ekleme
  • Og dev sayfasının altındaki grafik API bağlantısını seçme
  • Kazıyıcı tam olarak ne görmeyi seçerek seçme - gerçek zamanlı önbelleğe alınmamış kazıma verileri istemek görünmüyor, hala dosya mevcut olmasa bile, önbelleğe alınmış görüntü url gösterir

Kodunuzu incelemek, tarayıcı önbelleği veya bazı önbellekleme hizmeti ile ilgili bir sorun olmadığını onaylamak için her zaman bir yoldur. Meta bilgiler kodunuzda güncelse ve yukarıdakilerin tümünü denediyseniz (başka bir öneri meyve vermeyecekse), doğru cevap beklemekten başka bir şey yapamazsınız .

3
Philip Ingram

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

apps.facebook.com/MERHABA

linter'in gözünde o zaman farklı

apps.facebook.com/hello

Uygulamanın geliştirici ayarlarında girilen sitenin tam URL'sini kullandığınızdan emin olun. Aksi takdirde, linter özellikleri döndürür ancak önbelleği yenilemez.

3
Justin

Facebook Geliştirici Belgeleri, title özelliğinin istisna olduğunu söylüyor:

Bir nesne ile 50 işlem (beğeni, paylaşım ve yorum) ilişkilendirildikten sonra, başlığını güncelleyemezsiniz

https://developers.facebook.com/docs/sharing/opengraph/using-objects#update

1
moogoo

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

1
Gordon
  1. Git http://developers.facebook.com/tools/debug

  2. Sayfanın URL'sini 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’un kullandığı URL’yle aynı URL’yi kullandığınızdan emin olun (örneğin: Drupal içinde sayfa takma adı yerine node/* yolunu kullanın. bu url aracılığıyla paylaşılan).

  3. "Paylaşım iletişim kutusunda bunu gör" bağlantısını tıklayın.
1
Hans Rossel

Bu bir önbellektir, yenilenir, arada bir önbellek yapılması gereken budur. Bu yüzden bekleme sonunda işe yarayacak, ama bazen bunu daha hızlı yapmanız gerekebilir. Dosya adını değiştirmek çalışır.

0
Srneczek

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

Orjinal 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 taze meta verileri alacak.

0
Will

Benzer bir deneyim yaşadım. Web sitesi linki facebook'un oluşturduğu önizlemede 404 gösteriyordu. Og: url meta verilerinin hatalı olduğu ortaya çıktı. Birkaç gün önce düzelttik ama önizlemede hala 404 görüyorduk. Aracı https://developers.facebook.com/tools/debug/ adresinde kullandık ve bu yenilemeyi zorladı (bu arada herhangi bir parametre eklemek zorunda kalmadı). 24 saat sonra önbelleği yenilemeyin ancak araç zorla yardımcı oldu.

0
jawss510

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 çözmenin yolu, feed yerine feed yöntemini kullanmak ve ardından verileri el ile doldurmaktı (paylaşım yöntemiyle gösterilmiyordu).

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
Peege151

Benim için tüm çözümler işe yaramadı. Kullanıyorsanız Yoast SEO ile Wordpress kullanıyorsanız, o zaman bu iki etiketi yenilemelisiniz:

<meta property="article:modified_time" content="2017-09-29T00:37:33+02:00" />
<meta property="og:updated_time" content="2017-09-29T00:37:33+02:00" />

Değerleri yenilemek için makalede herhangi bir değişiklik yapmanız gerekir. Bu tarihi değiştirmezseniz facebook önbelleği yenilenmez.

functions.php içine filtre ekleyerek de bu ek etiketleri devre dışı bırakabilirsiniz:

add_filter( 'wpseo_og_article_published_time', '__return_false' );
add_filter( 'wpseo_og_article_modified_time', '__return_false' );
add_filter( 'wpseo_og_og_updated_time', '__return_false' );
0
Karol Trybulec