Facebook Paylaşım önbelleği nasıl temizlenir?


116

Bağlantıyı kullandık:

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

... belirli bir sayfayı paylaşmak için. Bununla birlikte, Facebook Sharer, görsellerin ve başlığın önbelleğe alınmış sürümünü kullanır. Facebook önbelleğini hızlı bir şekilde temizlemenin bir yolu var mı veya veriler güncellenene kadar ne kadar beklememiz gerekiyor?

<link rel='image_src' href='[preview image]' />Etiketlerin arasına yerleştirdim .

Yanıtlar:


237

Sorunuma bir çözüm buldum. Bu siteye gidebilirsiniz:

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

... daha sonra paylaşmak istediğiniz sayfanın URL'sini girin ve "hata ayıkla" yı tıklayın. Meta etiketlerinizdeki tüm bilgileri otomatik olarak çıkaracak ve ayrıca önbelleği temizleyecektir.


1
Aynı şeyi javascript ile otomatik olarak almanın bir yolu var mı? Sitemde sık sık adlarını değiştirebilen sayfalar var. Facebook'un 24 saatlik önbelleği sıfırlamasını beklemek istemiyorum, ne de her seferinde Facebook Lint'e gidemem. Facebook Lint'e bir ajax isteği kullanmayı denedim ( developer.facebook.com/tools/debug/og/object?q= ... url olarak) ancak yanıt şu q değeri (yukarıdaki url'ye parametre olarak geçirildi) Access-Control-Allow-Origin tarafından izin verilmiyor.
Giovanni Bitliner

3
Hâlâ yenilemede sorun yaşıyorsanız, URL'nizin sonuna rastgele bir sorgu dizesi parametresi eklemeyi deneyin.
JD Smith

2
Sadece Fetch new scrape informationdüğmeye tıklayın
IvanRF

2
Yeni kazıma bilgisi getirdim ... doğru verileri görüyor, ancak paylaşan eski verileri gösteriyor. Yapabileceğimiz başka bir şey var mı?
Peege151

1
Paylaşımda görüntülenen görüntüyle ilgili bir sorununuz varsa, görüntü URI'sını değiştirmeyi deneyin.
totymedli

10

Kullanım api yine bir sayfa kazımak için Facebook zorlamak için bir API var mı?

$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 her url'yi benzersiz olarak değerlendirir ve sayfayı bu url'ye göre önbelleğe alır, bu nedenle en son url'yi paylaşmak istiyorsanız en basit çözüm, paylaşılan url ile bir sorgu dizesi eklemektir. Basit bir deyişle, url'nin sonuna? V = 1 eklemeniz yeterlidir. 1 yerine herhangi bir sayı kullanılabilir.

Şapka ipucu: Umair Jabbar


Sanırım bu, sayfanızın aldığı bağlantıların sayısını etkileyecek, çünkü bunlar her sürüm için sayılacak, değil mi?
André Laszlo

3

Sanırım bu iki bağlantı probleminizle ilgili konularda geniş bir tartışmaya sahip. fb: ref arayarak paraları temizle

fbml.refreshRefUrl

bunun gibi

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

İlgili konuları buradan inceleyebilirsiniz fb: ref . Umarım senin için işe yarar


3

Bunu yapacak sayfa https://developers.facebook.com/tools/debug/ adresindedir ve diğer bazı cevaplardan bu yana biraz değişmiştir.

URL'nizi oraya yapıştırın ve " Hata Ayıkla " yı tıklayın . Ardından , URL metin alanının altındaki " Yeni kazıma bilgisini getir " düğmesine basın ve hazırsınız . Sayfanızdan yeni meta etiketleri çekecek, ancak yine de önbelleğe alacaklar, bu yüzden her değiştirdiğinizde bunu yapmanız gerekeceğini unutmayın. FB Paylaşılan URL'leri facebook içinde istediğiniz şekilde biçimlendirmek için meta etiketlerle oynuyorsanız, bu gerçekten çok önemlidir.


2

Bu cevap geliştiricilere yöneliktir.

Önbelleğin temizlenmesi, bu web sayfasının yeni paylaşımlarının OG etiketlerinde sağlanan yeni içeriği göstereceği anlamına gelir. Ancak, yalnızca üzerinde çalıştığınız URL'nin 50'den az etkileşimi varsa (beğeniler + paylaşımlar). Ayrıca, bu web sayfasına zaten Facebook'ta gönderilmiş olan eski bağlantıları da etkilemeyecektir. Yalnızca URL'yi Facebook'ta tekrar paylaşırken, Facebook'un bağlantıyı gösterme şekli güncellenecektir.

catandmouse'un cevabı doğrudur, ancak ayrıca graph.facebook.com'a bir gönderi isteği göndererek Facebook'un OG (OpenGraph) önbelleğini temizlemesini sağlayabilirsiniz (bu cevabın yazılmasından itibaren hem http hem de https için çalışır). Erişim jetonuna ihtiyacınız yok.

Graph.facebook.com adresine bir gönderi isteği aşağıdaki gibi görünebilir:

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

Perl'de, HTTP istekleri göndermek ve almak için Mojo :: UserAgent kitaplığının kullanıldığı aşağıdaki kodu kullanabilirsiniz:

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.");
        }
    }
}

Bu gönderi talebini terminal üzerinden göndermek aşağıdaki komutla yapılabilir:

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

1

URL'ye bir? V = random_string ekleyin. Bu fikri Facebook paylaşımıyla kullanıyorsanız, yanıttaki og: url parametresinin paylaştığınız url ile eşleştiğinden emin olun. Bu, google plus ile de çalışacaktır.

Facebook için, https://graph.facebook.com adresine bir gönderi isteği göndererek de yeniden taramayı zorlayabilirsiniz.

{id: url,
scrape: true}

Bu tam olarak aradığım şeydi.
Bee

Postman'da yukarıdaki JSON'u göndermeyi başaramadım, ancak ham bir metin dizesi göndermek bir yenilemeye neden oldu:id=http://www.ridr.me&scrape=true
Philipp Sumi

1

Burada ilgili bir gönderide 5 saniye süren basit bir çözüm yayınladım - Facebook hata ayıklayıcı: Tüm site önbelleğini temizle

kısa yanıtı ... kalıcı bağlantı ayarlarında bir worpdress sitesindeki kalıcı bağlantılarınızı özel bir bağlantıyla değiştirin. Az önce bir alt çizgi ekledim.
/ _% postname% /
sonra facebook hepsini yeni url'ler, yeni mesajlar olarak kazır .


Bu çok basit ve havalı. Maalesef istenmeyen bağlantı adları bırakıyor.
Garavani

0

Bir önbellek eklentisi ile wordpress kullanıyorsanız, tüm önbelleklerinizi temizlediğinizden emin olun. Ayrıca kullandığınız görüntünün önerilen facebook boyutuna sahip olduğundan emin olun: 1200 (g) x 630 (h) veya 600 x 315.


0

Yönetilen wordpress veya önbelleğe alma eklentileri kullandıysanız, facebook hata ayıklama aracının yeni bilgileri getirebilmesi için ÖNBELGENİZİ TEMİZLEMELİSİNİZ!

Haftalardır saçlarımı çekip, yaptığım değişikliklerin neden 24 saat boyunca facebook hata ayıklayıcıda görünmediğini anlamaya çalışıyorum !!!! Düzeltme, wordpress kontrol panelime gitmem, üstteki godaddy simgesine ve "önbelleği temizle" seçeneğine tıklamam gerekti. Bence birçok yönetilen wordpress sunucusu nasıl temizleneceğini anlamak için bir önbelleğe sahip ve altın olacaksın.


Wordpress önbelleğini temizlemek yardımcı olmaz. En azından benim için.
Garavani
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.