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