Comment vider le cache Facebook Sharer?

116

Nous avons utilisé le lien:

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

... pour partager une page particulière. Cependant, Facebook Sharer utilise la version mise en cache des images et du titre. Existe-t-il un moyen de vider rapidement le cache Facebook ou combien de temps devons-nous attendre que les données soient mises à jour?

J'ai placé <link rel='image_src' href='[preview image]' />entre les balises.

chat et souris
la source

Réponses:

237

J'ai trouvé une solution à mon problème. Vous pouvez aller sur ce site:

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

... puis entrez l'URL de la page que vous souhaitez partager, et cliquez sur "déboguer". Il extraira automatiquement toutes les informations sur vos balises méta et effacera également le cache.

chat et souris
la source
1
Existe-t-il un moyen d'obtenir la même chose mais automatiquement avec javascript? Mon site comporte des pages qui peuvent souvent changer de nom. Je ne voudrais pas attendre les 24 heures de réinitialisation du cache Facebook, je ne peux pas non plus aller sur Facebook Lint à chaque fois. J'ai essayé d'utiliser une requête ajax à Facebook Lint (avec developer.facebook.com/tools/debug/og/object?q= ... comme url) mais la réponse est que la valeur q (transmise en paramètre à l'url ci-dessus) est non autorisé par Access-Control-Allow-Origin.
Giovanni Bitliner
3
Si vous ne parvenez toujours pas à l'actualiser, essayez d'ajouter un paramètre de chaîne de requête aléatoire à la fin de votre URL.
JD Smith
2
Cliquez simplement sur le Fetch new scrape informationbouton
IvanRF
2
J'ai récupéré de nouvelles informations de grattage ... ce sont les bonnes données, mais le partageur affiche les anciennes données. Y a-t-il autre chose que nous pouvons faire?
Peege151
1
Si vous rencontrez un problème avec l'image affichée dans le partage, essayez de modifier l'URI de l'image.
totymedli
10

Utiliser l'API Existe-t-il une API pour forcer Facebook à gratter à nouveau une page?

$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 );
Vladimir Pak
la source
10

Facebook traite chaque URL comme unique et met en cache la page en fonction de cette URL, donc si vous souhaitez partager la dernière URL, la solution la plus simple consiste à ajouter une chaîne de requête avec l'URL partagée. En termes simples, ajoutez simplement? V = 1 à la fin de l'url. N'importe quel nombre peut être utilisé à la place de 1.

Pointe du chapeau: Umair Jabbar

Martin Carstens
la source
Je pense que cela affectera le nombre de liens que votre page a reçus, puisqu'ils seront comptés pour chaque version, non?
André Laszlo
3

Je pense que ces deux liens ont une large discussion sur votre problème. fb: ref clair les encaissements en appelant

fbml.refreshRefUrl

comme ça

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

Vous pouvez étudier les choses liées à partir d'ici fb: ref . J'espère que cela fonctionnera pour vous

Awais Qarni
la source
3

La page pour ce faire est à https://developers.facebook.com/tools/debug/ et a légèrement changé depuis certaines des autres réponses.

Collez votre URL là-dedans et cliquez sur " Déboguer ". Cliquez ensuite sur le bouton " Récupérer de nouvelles informations de scrape " sous le champ de texte URL et vous devriez être prêt. Cela extraira les nouvelles balises Meta de votre page, mais elles resteront en cache, alors gardez à l'esprit que vous devrez le faire chaque fois que vous les modifiez. Ceci est vraiment essentiel si vous jouez avec les balises méta pour que les URL partagées FB soient formées comme vous le souhaitez à l'intérieur de Facebook.

Matt Toigo
la source
2

Cette réponse est destinée aux développeurs.

Effacer le cache signifie que les nouveaux partages de cette page Web afficheront le nouveau contenu fourni dans les balises OG. Mais seulement si l'URL sur laquelle vous travaillez a moins de 50 interactions (likes + partages). Cela n'affectera pas non plus les anciens liens vers cette page Web qui ont déjà été publiés sur Facebook. Ce n'est que lors du partage de l'URL sur Facebook que la façon dont Facebook affiche le lien sera mise à jour.

La réponse de catandmouse est correcte mais vous pouvez également effacer Facebook du cache OG (OpenGraph) en envoyant une demande de publication à graph.facebook.com (fonctionne à la fois pour http et https au moment de la rédaction de cette réponse). Vous n'avez pas besoin d'un jeton d'accès.

Une demande de publication sur graph.facebook.com peut ressembler à ceci:

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

En Perl, vous pouvez utiliser le code suivant où la bibliothèque Mojo :: UserAgent est utilisée pour envoyer et recevoir des requêtes 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'envoi de cette demande de publication via le terminal peut être effectué avec la commande suivante:

curl -F id="<URL>" -F scrape=true graph.facebook.com
Thorkil Værge
la source
1

Ajoutez un? V = random_string à l'url. Si vous utilisez cette idée avec le partage Facebook, assurez-vous que le paramètre og: url dans la réponse correspond à l'URL que vous partagez. Cela fonctionnera également avec google plus.

Pour Facebook, vous pouvez également forcer le réexploration en faisant une demande de publication à https://graph.facebook.com

{id: url,
scrape: true}
Purushothaman Ramraj
la source
Ceci est exactement ce que je cherchais.
Bee
Je n'ai pas pu faire fonctionner cela en publiant le JSON ci-dessus dans Postman, mais la publication d'une chaîne de texte brute a provoqué une actualisation:id=http://www.ridr.me&scrape=true
Philipp Sumi
1

Je viens de publier une solution simple qui prend 5 secondes ici sur un article connexe ici - Débogueur Facebook: Effacer la

réponse courte du cache du site entier ... changez vos permaliens sur un site de travail dans les paramètres de permaliens en un personnalisé. Je viens d'ajouter un trait de soulignement.
/ _% postname% /
puis facebook les gratte tous en tant que nouvelles URL, nouveaux messages.

NowLiveLove
la source
C'est simple et cool. Malheureusement, il laisse des noms de liens indésirables.
Garavani
0

si vous utilisez wordpress avec un plugin de cache, assurez-vous de vider tous vos caches. Assurez-vous également que l'image que vous utilisez a la taille Facebook recommandée: 1200 (l) x 630 (h) ou 600 x 315.

csandreas1
la source
0

Si vous avez utilisé des plugins Wordpress gérés ou de mise en cache, vous devez EFFACER VOTRE CACHE avant que l'outil de débogage de Facebook puisse récupérer de nouvelles informations!

Je m'arrache les cheveux depuis des semaines pour comprendre pourquoi les modifications que j'ai apportées n'apparaissent pas dans le débogueur Facebook pendant 24 heures !!!! Le correctif est que je dois accéder à mon tableau de bord wordpress, cliquer sur l'icône godaddy en haut et cliquer sur «vider le cache». Je pense que de nombreux hébergeurs WordPress gérés ont un cache pour savoir comment le vider et vous serez en or.

Tim Marchini
la source
Effacer le cache de Wordpress n'aidera pas. Au moins pour moi.
Garavani