Come svuotare la cache di Facebook Sharer?


116

Abbiamo usato il link:

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

... per condividere una determinata pagina. Tuttavia, Facebook Sharer utilizza la versione cache delle immagini e del titolo. C'è un modo per svuotare rapidamente la cache di Facebook o quanto tempo dobbiamo aspettare prima che i dati vengano aggiornati?

Ho inserito <link rel='image_src' href='[preview image]' />tra i tag.

Risposte:


237

Ho trovato una soluzione al mio problema. Potresti andare su questo sito:

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

... quindi inserisci l'URL della pagina che desideri condividere e fai clic su "debug". Estrarrà automaticamente tutte le informazioni sui meta tag e svuoterà anche la cache.


1
C'è un modo per ottenere la stessa cosa ma automaticamente con javascript? Il mio sito ha pagine che possono cambiare spesso il loro nome. Vorrei non aspettare le 24 ore di ripristino della cache di Facebook, né posso andare su Facebook Lint ogni volta. Ho provato a utilizzare una richiesta ajax a Facebook Lint (con developers.facebook.com/tools/debug/og/object?q= ... come url) ma la risposta è che il valore q (passato come parametro all'URL sopra) è non consentito da Access-Control-Allow-Origin.
Giovanni Bitliner

3
Se hai ancora problemi con l'aggiornamento, prova ad aggiungere un parametro di stringa di query casuale alla fine dell'URL.
JD Smith

2
Basta fare clic sul Fetch new scrape informationpulsante
IvanRF

2
Ho recuperato nuove informazioni sullo scrap ... vede i dati corretti ma il condivisore mostra i vecchi dati. C'è qualcos'altro che possiamo fare?
Peege151

1
Se hai problemi con l'immagine visualizzata nella condivisione, prova a cambiare l'URI dell'immagine.
totymedli

10

Usa API Esiste un'API per forzare Facebook a raschiare di nuovo una pagina?

$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 considera ogni URL come univoco e memorizza nella cache la pagina in base a quell'URL, quindi se desideri condividere l'URL più recente, la soluzione più semplice è aggiungere una stringa di query con l'URL condiviso. In parole semplici, aggiungi? V = 1 alla fine dell'URL. È possibile utilizzare qualsiasi numero al posto di 1.

Punta di cappello: Umair Jabbar


Penso che questo influirà sul numero di link ricevuti dalla tua pagina, poiché verranno conteggiati per ogni versione, giusto?
André Laszlo

3

Penso che questi due link abbiano un'ampia discussione sulle tue cose relative ai problemi. fb: ref cancella l'incasso chiamando

fbml.refreshRefUrl

come questo

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

Puoi studiare le cose correlate da qui fb: ref . Spero che funzioni per te


3

La pagina per farlo è su https://developers.facebook.com/tools/debug/ ed è leggermente cambiata rispetto ad alcune delle altre risposte.

Incolla il tuo URL lì e premi " Debug ". Quindi premi il pulsante " Recupera nuove informazioni di scraping " sotto il campo di testo dell'URL e dovresti essere pronto. Estrarrà i nuovi meta tag dalla tua pagina, ma verranno comunque memorizzati nella cache, quindi tieni presente che dovrai farlo ogni volta che li modifichi. Questo è davvero fondamentale se stai giocando con i meta tag per ottenere URL condivisi di FB per formattare nel modo in cui desideri che siano all'interno di Facebook.


2

Questa risposta è destinata agli sviluppatori.

Svuotare la cache significa che le nuove condivisioni di questa pagina web mostreranno il nuovo contenuto fornito nei tag OG. Ma solo se l'URL su cui stai lavorando ha meno di 50 interazioni (Mi piace + condivisioni). Inoltre, non influirà sui vecchi collegamenti a questa pagina Web che sono già stati pubblicati su Facebook. Solo condividendo nuovamente l'URL su Facebook verrà aggiornato il modo in cui Facebook mostra il collegamento.

La risposta di catandmouse è corretta ma puoi anche fare in modo che Facebook svuoti la cache OG (OpenGraph) inviando una richiesta di post a graph.facebook.com (funziona sia per http che per https al momento della stesura di questa risposta). Non è necessario un token di accesso.

Una richiesta di post a graph.facebook.com potrebbe apparire come segue:

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

In Perl, è possibile utilizzare il codice seguente in cui viene utilizzata la libreria Mojo :: UserAgent per inviare e ricevere richieste HTTP:

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

L'invio di questa richiesta di post tramite il terminale può essere effettuato con il seguente comando:

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

1

Aggiungi una? V = random_string all'URL. Se stai usando questa idea con la condivisione di Facebook, assicurati che il parametro og: url nella risposta corrisponda all'URL che stai condividendo. Funzionerà anche con Google Plus.

Per Facebook, puoi anche forzare la ripetizione della scansione inviando una richiesta di post a https://graph.facebook.com

{id: url,
scrape: true}

Questo e 'esattamente quello che stavo cercando.
Bee

Non sono riuscito a farlo funzionare pubblicando il JSON sopra in Postman, ma la pubblicazione di una stringa di testo non elaborata ha causato un aggiornamento:id=http://www.ridr.me&scrape=true
Philipp Sumi

1

Ho appena pubblicato una semplice soluzione che richiede 5 secondi qui in un post correlato qui - Debugger di Facebook: Cancella l'intera cache

del sito Risposta breve ... cambia i tuoi permalink su un sito worpdress nelle impostazioni dei permalink in uno personalizzato. Ho appena aggiunto un trattino basso.
/ _% postname% /
quindi facebook li raschia tutti come nuovi URL, nuovi post.


Questo è semplice e interessante. Purtroppo lascia nomi di link indesiderati.
Garavani

0

se stai usando wordpress con un plug-in della cache, assicurati di svuotare tutte le cache. Assicurati inoltre che l'immagine che stai utilizzando abbia le dimensioni Facebook consigliate: 1200 (L) x 630 (A) o 600 x 315.


0

Se hai usato wordpress gestito o plugin di caching, devi CANCELLARE LA TUA CACHE prima che lo strumento debugger di Facebook possa recuperare nuove informazioni!

Mi sono strappato i capelli per settimane cercando di capire perché le modifiche apportate non sarebbero state visualizzate nel debugger di Facebook per 24 ore !!!! La soluzione è che devo accedere alla dashboard di wordpress, fare clic sull'icona di Godaddy in alto e fare clic su "Svuota cache". Penso che molti hoster wordpress gestiti abbiano una cache per capire come cancellarla e sarai d'oro.


La cancellazione della cache di Wordpress non aiuterà. Almeno per me.
Garavani
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.