2011-03-10 3 views
108

se utilizó el enlace:¿Cómo borrar el caché Sharer de Facebook?

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

... para compartir una página en particular. Sin embargo, Facebook Sharer usa la versión en caché de las imágenes y el título. ¿Hay alguna manera de borrar rápidamente el caché de Facebook o cuánto tiempo tenemos que esperar hasta que los datos se actualicen?

coloqué <link rel='image_src' href='[preview image]' /> entre las etiquetas.

Respuesta

228

he encontrado una solución a mi problema. Se podía ir a este sitio:

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

... a continuación, poner en la URL de la página que desea compartir y haga clic en "depuración". Automáticamente extraerá toda la información en sus etiquetas meta y también borrará la caché.

+1

¿Hay alguna manera de obtener lo mismo pero automáticamente con javascript? Mi sitio tiene páginas que pueden cambiar a menudo su nombre. Me gustaría no esperar las 24 horas del restablecimiento de la memoria caché de Facebook, ni puedo ir a Facebook Lint todo el tiempo. He intentado usar una solicitud de Ajax para Facebook Lint (con https: //developers.facebook.com/tools/debug/og/object? Q = ... como url) pero la respuesta es ese q valor (pasado como parámetro a la URL anterior) no está permitido por Access-Control-Allow-Origin. –

+0

@Giovanni Chetelodicoafare, intente utilizar un trabajo cron (Linux) o una tarea programada (ventanas) para visitar https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fyour- sitio web.com. Los trabajos de Cron están disponibles en el panel de administración de la mayoría de los proveedores de hosting. –

+3

Si aún tiene problemas para actualizar, intente agregar un parámetro de cadena de consulta aleatoria al final de su URL. –

3

I cosa en estos dos enlaces tienen una amplia discusión sobre su problema de cosas relacionadas. FB: ref cobros claras llamando

 
fbml.refreshRefUrl 

como esto

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

Se puede estudiar la materia relacionada desde aquí fb:ref. Espero que funcione para usted

10

uso API Is there an API to force Facebook to scrape a page again?

$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); 
+3

Esto ya no funciona sin access_token. – andrewtweber

9

Facebook trata cada URL como único y almacena en caché la página en función de esa URL, por lo que si desea compartir la última url la solución más sencilla es añadir una cadena de consulta con la url compartida. En palabras simples simplemente agregue? V = 1 al final de la url. Cualquier número se puede utilizar en lugar de 1.

Sombrero de punta: Umair Jabbar

+0

Creo que esto afectará la cantidad de enlaces que ha recibido su página, ya que se contarán para cada versión, ¿no? –

3

La página de hacerlo es a https://developers.facebook.com/tools/debug/ y ha cambiado ligeramente desde algunas de las otras respuestas.

Pega aquí tu URL y pulsa "Depurar". A continuación, pulse el botón "Obtener nueva información de raspado" debajo del campo de texto URL y debería estar todo listo. Extraerá las metaetiquetas nuevas de su página, pero seguirán caché, por lo que debe tener en cuenta que deberá hacerlo cada vez que las cambie. Esto es realmente crítico si está jugando con las metaetiquetas para obtener URLs compartidas FB para formatearlas de la manera que desee dentro de Facebook.

1

Adjuntar a? V = random_string a la url. Si está utilizando esta idea con Facebook share, asegúrese de que el parámetro og: url en la respuesta coincida con la URL que está compartiendo. Esto funcionará con google plus también.

Para Facebook, también puede forzar un nuevo rastreo al hacer una solicitud posterior a https://graph.facebook.com

{id: url, 
scrape: true} 
+0

Esto es exactamente lo que estaba buscando. – Bee

+0

No pude conseguir que esto funcionara publicando el JSON anterior en Postman, pero publicar una cadena de texto sin procesar causó una actualización: 'id = http: // www.ridr.me & scrape = true' –

2

Esta respuesta está destinado a desarrolladores.

Al borrar la caché, las nuevas acciones de esta página web mostrarán el nuevo contenido que se proporciona en las etiquetas OG. Pero solo si la URL en la que está trabajando tiene menos de 50 interacciones (Me gusta + acciones). Tampoco afectará los enlaces antiguos a esta página web que ya se han publicado en Facebook. Solo cuando se vuelva a compartir la URL en Facebook, la forma en que Facebook muestra el enlace se actualizará. respuesta

de catandmouse es correcta, pero también puede hacer que Facebook borrar la caché OG (Open Graph) mediante el envío de una solicitud posterior a graph.facebook.com (que funciona para HTTP y HTTPS partir de la redacción de esta respuesta). No necesita un token de acceso.

una petición POST a graph.facebook.com puede ser similar al siguiente:

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, puede utilizar el siguiente código donde se utiliza la biblioteca Mojo :: agente de usuario para enviar y recibir peticiones 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') { 
     JIX::Log->warn("Clearing cached OG data for $clearurl failed with code $code."); 
     } 
    } 
} 

envío de esta solicitud posterior a través del terminal se puede hacer con el comando siguiente:

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

si usa WordPress con un complemento de caché, asegúrese de borrar todas las cachés. También asegúrese de que la imagen que está utilizando tiene el tamaño recomendado facebook: 1200 (w) x 630 (h) o 600 x 315.

0

Me acaba de publicar una solución simple que tarda 5 segundos aquí en un post relacionado aquí - Facebook debugger: Clear whole site cache

respuesta corta ... cambie sus enlaces permanentes en un sitio de worpdress en la configuración de enlaces permanentes a uno personalizado. Acabo de agregar un guion bajo.
/_% postname%/
luego Facebook los raspa todos como nuevos URL, mensajes nuevos.

0

Si usó los plugins administrados de WordPress o de caché, ¡tiene que BORRAR SU CACHÉ antes de que la herramienta de depuración de Facebook pueda obtener nueva información!

¡He estado tirando de mi cabello durante semanas, pensando por qué los cambios que hice no aparecerían en Facebook depurador durante 24 horas! La solución es que tengo que acceder a mi panel de WordPress, hacer clic en el icono de GoDaddy en la parte superior y hacer clic en "vaciar la memoria caché". Creo que muchos proveedores de servicios gestionados de wordpress tienen un caché para descubrir cómo borrarlo y estarás dorado.

Cuestiones relacionadas