Facebook Open Graph no borra el caché

174

Tengo problemas con mis metaetiquetas con Open Graph. Parece que Facebook está almacenando en caché los viejos valores de mis metaetiquetas. Los valores antiguos para los atributos og:titley og:urltodavía se usan, aunque ya los he cambiado.

Ejecuté Lint en una página de mi sitio , y esto apareció:

Captura de pantalla de la pelusa de Facebook Open Graph

Observe que hay dos valores para og:titley og:url, y el último prevaleció. Sin embargo, las dos últimas entradas son las entradas ANTIGUAS que utilicé para este sitio. Actualmente estoy usando estas metaetiquetas (puede verificar si ve la fuente del HTML):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

¿Por qué es Facebook el almacenamiento en caché og:titley og:url? ¿Alguien está experimentando el mismo problema?

Ardee Aram
fuente
Supongo que esto es como una historia? Estoy viendo a FB obteniendo lo último titley urlpara ti (en la tabla de información), ¿por qué molestarse?
ifaour
El problema es que el recuento de Me gusta en Facebook todavía es para el OLD og: url ( pinq.dk ) que es alrededor de 200+, en lugar de contar para pinq.dk/tilbud/landsdaekkende/lissy
Ardee Aram
Y no creo que esto sea historia. Más de og: url se establece (supuestamente) dos veces, siendo la última la que prevaleció. De alguna manera, los valores antiguos que ya se eliminaron del código aún afectan los metavalores.
Ardee Aram
3
Bueno, lee esto . Especialmente la sección Edición de metaetiquetas . No estoy seguro de si está relacionado, pero puede ayudar. Comprobaré esto más tarde, lo siento amigo.
ifaour
2
Eso es probablemente eso. "Puede actualizar los atributos de su página actualizando las etiquetas <meta> de su página. Tenga en cuenta que og: title y og: type solo se pueden editar inicialmente: después de que su página reciba 50 me gusta, el título se arregla y después de que su página reciba 10,000 me gusta el tipo se vuelve fijo. Estas propiedades se corrigen para evitar sorprender a los usuarios que ya les ha gustado la página. Cambiar el título o las etiquetas de tipo después de alcanzar estos límites no hace nada, su página retiene el título y el tipo original ". Gracias ifaour!
Ardee Aram

Respuestas:

304
  1. Vaya a http://developers.facebook.com/tools/debug
  2. Ingrese la URL siguiente por fbrefresh=CAN_BE_ANYTHING

Ejemplos:

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. O visitar: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

Estaba teniendo el mismo problema anoche, y obtuve esta solución de algún sitio web.

Facebook guarda la miniatura de tu caché. No se actualizará incluso si elimina la miniatura / imagen de su servidor. Pero Facebook te permite actualizar usandofbrefresh

Espero que esto ayude.

ordenador personal
fuente
30
PARAM fbrefresh podría no ser necesario ya que la herramienta de depuración refresca el objeto sin ella.
alexandru.topliceanu
77
No borra el caché en absoluto a menos que use este parámetro.
Umur Kontacı
26
No es cierto, agregar ese parámetro no hace ninguna diferencia en la operación de la herramienta de depuración; no hay referencia a ese parámetro en la herramienta de depuración o en el código del raspador
Igy
77
No es necesario usar el parámetro fbrefresh, pero debe iniciar sesión como administrador de la aplicación FB que posee ese dominio, de lo contrario, la memoria caché no se actualizará.
Felipe Brahm
3
Puedo verificar que agregar el parámetro fbrefresh funcionó para mí. Si compartía la URL, usaba datos antiguos aunque el depurador mostraba los datos correctos. Pero una vez que usé el depurador con el parámetro fbrefresh, incluso los recursos compartidos normales usaron los datos correctos.
helado
82

La pregunta más votada está bastante desactualizada:

Estas son las únicas 2 opciones que deben usarse a partir de noviembre de 2014 :

Para no desarrolladores

  1. Utilice el depurador de FB: https://developers.facebook.com/tools/debug/og/object
  2. Pegue la url que desea recachear. (Asegúrese de usar la misma URL incluida en su etiqueta og: url)
  3. Haga clic nuevamente en el botón Obtener información de raspado

Para desarrolladores

  1. Realice una llamada GET mediante programación a esta URL: https://graph.facebook.com/?id=[YOUR_URL_HEREfont>&scrape=true (consulte: https://developers.facebook.com/docs/games_payments/takingpayments#scraping )
  2. Asegúrese de que la etiqueta og: url incluida en el encabezado de esa página coincida con la que está pasando.
  3. incluso puede analizar la respuesta json para obtener el número de recursos compartidos de esa URL.

Información adicional sobre la actualización de imágenes

  • Si la URL de og: image sigue siendo la misma pero la imagen realmente ha cambiado, los raspadores de Facebook ni la actualizarán ni la recuperarán, incluso haciendo lo anterior. (incluso pasar un? last_update = [TIMESTAMP] al final de la url de la imagen no funcionó para mí).
  • La única solución efectiva para mí ha sido asignar un nuevo nombre a la imagen.

Nota sobre actualizaciones de imágenes o videos en publicaciones publicadas anteriormente:

  • Cuando llama al depurador para descartar cambios en sus etiquetas og: de su página, todos los recursos compartidos anteriores de Facebook de esa URL aún mostrarán la imagen / video anterior. No hay forma de actualizar todas las publicaciones anteriores y es así por diseño por razones de seguridad. De lo contrario, alguien podría fingir que un usuario compartió algo que realmente no hizo.
Oriol Esteban
fuente
No parece devolver el número de acciones para mi página. Leí en esta publicación: " stackoverflow.com/questions/3581488/… " que necesita tener un botón de me gusta / compartir de Facebook en la página para que la salida de este punto final contenga cualquier información.
WillyBurb
asegúrese de que las etiquetas estén en el HEAD y no en el BODY de su página: el depurador le advertirá de esto y será ignorado (sí, sé que mencionó esto, solo quería enfatizar el punto)
Simon_Weaver
@Oriol Esteban, ¿encontraste otras formas de actualizar imágenes?
Petr
3
@Oriol Cuando probé esto recientemente tuve que PUBLICAR publicaciones en esta URL (según developers.facebook.com/docs/sharing/opengraph/… )
Glen T
1
¿Alguna idea sobre cómo rascar el caché al cambiar la url de og: video ????? Hice una pequeña edición de mi video y cambié la URL, ¡y Facebook sigue mostrando la versión anterior! Obviamente hice el scratch en depuración (y se muestra correctamente allí) ¡pero no en la publicación! ... ¡Esto me está volviendo loco!
RayOnAir
19

Si tiene muchas páginas y no desea actualizarlas manualmente, puede hacerlo automáticamente.

Digamos que tiene una página de perfil de usuario con foto:

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

Simplemente agregue esto a su página:

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Esto actualizará el caché de Facebook. Si utiliza la solución jQuery, eche un vistazo a "respuesta" en console.log; encontrará allí el campo "updated_time" y otra información útil.

Zhorzh Alexandr
fuente
esta era la única solución consistente que me reventaría el caché de imágenes. usando fbrefreshno hizo nada por mi problema.
hellatan
Hola, estoy probando este método pero obtengo algunos errores, $ this-> output ('<script type = "text / javascript"> $ (document) .ready (function () {$ .post (" graph .facebook.com ", {id:" '. $ this-> content [' canonical '].' ", scrape: true}, function (response) {console.log (response);});}); < / script> ');
monsterboy
Recibo el siguiente error Uncaught ReferenceError: $ no está definido (función anónima) cualquier ayuda sería muy apreciada :)
monsterboy
@monsterboy $: este es un acceso directo a la función jQuery. $ .post () es lo mismo que jQuery.post () Para usar esta biblioteca, primero debe importarla: <script src = " code.jquery.com/jquery-latest.min.js " type = "text / javascript "> </script>
Zhorzh Alexandr
@ZhorzhAlexandr thx por su respuesta, pero estoy usando wordpress y tengo una publicación que se puede editar todos los días, ¿cómo puedo usar este script cada vez antes de compartirlo?
Antwan
12

La miniatura de OG no parece actualizarse incluso si pasa la variable fbrefresh. Para actualizar esto sin esperar la eliminación automática, deberá cambiar el nombre de archivo del valor de la metaetiqueta asociada a la miniatura y actualizar.

Seb
fuente
Según las otras respuestas, puede forzar una actualización utilizando el fbrefreshparámetro URL.
Sam Mussmann
1
@SamMussmann Parece que esto solo (si es que lo hace) actualiza la memoria caché del contenido de la etiqueta OG, y NO la imagen real encontrada en la URL de dicho contenido. EG: Mantiene las etiquetas OG iguales, pero cambia el archivo de imagen (manteniendo el mismo nombre) y la imagen misma permanecerá en caché. No he encontrado ninguna manera de borrar esto, aparte de, como dijo Seb, que debe cambiar el nombre de archivo de la imagen.
Nick M
@ Nick M ¿Encontró otras soluciones?
Petr
Resuelto Lo resolví agregando? T = TIMESTAMP a la url de mi imagen en el script php, donde generamos etiquetas. Por ahora funciona.
Petr
Simplemente intenté cambiar el nombre del archivo de imagen y actualicé el valor de la metaetiqueta, pero tampoco funcionó.
Antonio Ooi
7

Tuve los mismos problemas al usar og:image, varios intentos de cambiar el nombre del archivo o borrar el caché de FB no funcionaron a través del depurador de Facebook o las pruebas a través de una cuenta real.

Las nuevas pautas de Facebook establecen que el tamaño de la imagen debe ser 1200 x 630 o que tenga esa relación de aspecto, esto parece estar mal, lo único que funcionó para mí fue usar una imagen con dimensiones cuadradas .

Editar * Algunas horas volví a usar 1200 x 630 y funcionó mágicamente, fue mágico.

También cambié el nombre de los archivos a f * ^ * kfacebook.jpg, no estoy seguro de que haya ayudado, pero me sentí bien.

Wyck
fuente
6

Básicamente, la respuesta es paciencia;)

Revisé el Linter esta mañana, y og: title y og: url se muestran correctamente, sin los valores redundantes. Supongo que FaceBook borra automáticamente su caché en un intervalo específico. Solo tengo que esperar.

ingrese la descripción de la imagen aquí

Ardee Aram
fuente
Desde Facebook para desarrolladores , el caché de objetos caduca cada 7 días, y Facebook reorganizará automáticamente el objeto la próxima vez que se use.
Venugopal
4

Acabamos de encontrarnos con esto, como resultado, no estábamos alineando la url correcta, ya que la url real tenía una cadena de consulta (duh, una página diferente en lo que respecta a un bot).

http://example.com/

! ==

http://example.com/?utm_campaign=foo

La desfibradora se almacenar en caché la página, usted no tiene que esperar.

Ryan Florence
fuente
4

Ooook, finalmente ayudó (uso IP.Board). Lo que tuve que hacer fue:

  1. Cambiar url de og: imagen en mi sitio web (Configuración general).
  2. Pruebe este método con? Fbrefresh = 1154464gd56

Gracias al autor por este hilo!

EDITAR: además, debe recordar los requisitos de imagen. Por ahora (enero de 2013) es: - al menos 200 px en ambas direcciones - relación máxima 3: 1

Mate
fuente
3

Una cosa para agregar, la url distingue entre mayúsculas y minúsculas . Tenga en cuenta que:

apps.facebook.com/ HELLO

es diferente a los ojos de la peluquera entonces

apps.facebook.com/ hello

Asegúrese de usar la URL exacta del sitio que se ingresó en la configuración del desarrollador de la aplicación. De lo contrario, la interfaz devolverá las propiedades, pero no actualizará la memoria caché.

Justin
fuente
3

Lo siento amigos, pero la respuesta correcta es:

No hay una forma infalible de actualizar el gráfico abierto og: url de imagen con resultado inmediato. Se almacena en caché hasta que fb se actualice (según se informa cada 24 horas)

Aquí hay cosas que otros han informado que funcionan, pero he tenido CERO éxito con cualquiera de ellas.

  • Elegir "Obtener nueva información de raspado"
  • Cambiar el nombre de archivo de la imagen real y / o eliminar el original
  • Agregar una cadena de consulta a la url de la imagen agregando un PHP TIMESTAMP o algo
  • Agregar la cadena de consulta "... yoursite.com/?fbrefresh=anything" a la url de búsqueda del depurador
  • Elegir el enlace de la API de gráficos en la parte inferior de la página de desarrollo de og
  • Al elegir ver exactamente lo que ve el raspador, no parece solicitar datos de raspado sin almacenar en caché en tiempo real, aún muestra la URL de la imagen en caché, incluso si el archivo ya no existe

La inspección de su código siempre es una forma de confirmar que no es un problema con la memoria caché del navegador o algún servicio de almacenamiento en caché. Si la metainformación está actualizada en su código y ha intentado todo lo anterior (a menos que otra sugerencia se haga realidad), la respuesta correcta es que no puede hacer nada más que esperar .

Philip Ingram
fuente
1

Descubrí que si su imagen es de 72 ppp, le dará el error de tamaño de imagen. Use 96 ppp en su lugar. Espero que esto ayude.

Gordon
fuente
1
  1. Vaya a http://developers.facebook.com/tools/debug

  2. Pegue la URL de la página y haga clic en depurar. Si su sitio usa alias de URL, asegúrese de estar usando la misma URL que usa Facebook para la página que está compartiendo (ejemplo: en Drupal use la ruta de nodo / * en lugar del alias si la página se comparte a través de esa URL).

  3. Haga clic en la parte "Compartir vista previa" en el enlace "Ver esto en el cuadro de diálogo Compartir"
Hans Rossel
fuente
¡Mejor solución! Gracias
MeV
0

Tuve una experiencia similar. El enlace al sitio web mostraba un 404 en la vista previa que generó Facebook. Resulta que los metadatos og: url estaban equivocados. Ya lo habíamos arreglado hace unos días, pero aún veíamos un 404 en la vista previa. Utilizamos la herramienta en https://developers.facebook.com/tools/debug/ y eso forzó la actualización (por cierto, no tenía que agregar ningún parámetro) En nuestro caso, Facebook no actualizó el caché después de 24 horas pero la herramienta ayudó a forzarlo.

jawss510
fuente
0

Es un caché, ofc se actualiza, eso es lo que el caché debe hacer de vez en cuando. Por lo tanto, esperar eventualmente funcionará, pero a veces debe hacerlo más rápido. Cambiar el nombre del archivo funciona.

Srneczek
fuente
Entonces, ¿por qué -1? Literalmente, nadie respondió la solución más simple para CAMBIAR EL NOMBRE DE ARCHIVO y en realidad no funciona como otras (+/- 5) respuestas votadas que no lo hacen o al menos lo hicieron pero están desactualizadas. Ofc si no puede cambiar el nombre de archivo por alguna razón, esta respuesta no lo ayudará.
Srneczek
0

Estaba teniendo este problema también. El raspador muestra la información correcta, pero la url compartida todavía estaba llena de datos antiguos.

La forma de evitar esto fue usar el método de alimentación, en lugar de compartir, y luego llenar los datos manualmente (que no está expuesto con el método de compartir)

Algo como esto:

shareToFB = () => {
    window.FB.ui({
    method: 'feed',
    link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`,
    name: 'THIS WILL OVERRIDE OG:TITLE TAG',
    description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG',
    caption: 'THIS WILL OVERRIDE THE OG:URL TAG'
  });
};
Peege151
fuente
0

Muy fácil de resolver. Probado y funcionando. Solo necesita generar una nueva URL cuando actualice sus metaetiquetas. Es tan simple como agregar un "& cacheBuster = 1" a su URL. Si cambia las metaetiquetas, simplemente incremente "& cacheBuster = 2"

URL original

www.example.com

URL cuando se actualizan las metaetiquetas og:

www.example.com?cacheBuster=1

URL cuando las metaetiquetas og se actualizan nuevamente:

www.example.com?cacheBuster=2

Facebook tratará a cada uno como una nueva URL y obtendrá metadatos nuevos.

Será
fuente
0

Años más tarde y esto sigue siendo un problema común, pero no siempre es el caché de Facebook: a menudo es un error humano (permítanme explicarlo)

OG: TYPE afecta el raspado de tu imagen:

  1. https://ogp.me/#type_article no es lo mismo que https://ogp.me/#type_website

Tenga en cuenta que og: type = website hará que cualquier / subpágina / de esa url se vuelva "canónica". Esto significa que tendrá problemas para actualizar sus imágenes utilizando el raspador sin importar lo que haga.

Considere esta "suposición y error común"

- <meta property="og:type" content="website" />=> https://www.example.org (padre)
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/child -2 /
- Ergo: /sub-page/y /child-2/heredará elog:image del padre

Esos no son "todos los sitios web", 1 es un sitio web, los otros son artículos.

Si haces eso, Facebook pensará que todos ellos son canónicos y pondrá la PRIMERA og: imagen en todos ellos. (pruébalo, verás): si configuras el og: url como tu dominio raíz o principal, le has dicho a Facebook que todos son canónicos. (hay una buena razón para eso, pero está fuera de tema)

Considere esta solución (que es lo que la mayoría de la gente "realmente quiere")

- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/child-2/

Si lo hace ahora, Facebook le dará muchos menos problemas para raspar sus NUEVAS imágenes.

Para terminar, SÍ, los destructores de caché, variables aleatorias, cambios de URL y sugerencias aquí pueden funcionar, pero parecerán "vudú intermitente" si og:typeno se especifica correctamente.

PD: recuerde que un CDN o caché del servidor servirá para el raspador de Facebook incluso si "cree" que puede ver la versión más reciente. (No pasaré más tiempo en esto que no sea señalar que desperdiciará cantidades colosales de su tiempo si no se verifica dos veces).

Christian Žagarskas
fuente
0

Recientemente tuve un problema diferente pero similar con Facebook, y descubrí que la página de depuración / depuración mencionada, simplemente no parece leer ninguna página en su totalidad. Mis meta propiedades para Open Graph estaban más abajo en la sección de cabecera, y el raspador me informaba constantemente que la especificación de la imagen no era correcta, y utilizaría una versión en caché independientemente. Moví las etiquetas de Open Graph más arriba en el código, cerca de la parte superior de la página, y luego todo funcionó perfectamente, todo el tiempo.

PaulScott
fuente