Rastreador de Facebook

El rastreador de Facebook rastrea el código HTML de una app o un sitio web que se compartió en Facebook, ya sea copiando y pegando el enlace o mediante un plugin social de Facebook. El rastreador recopila, almacena en caché y muestra información sobre la app o el sitio web, por ejemplo, el título, la descripción y la imagen en miniatura.

Requisitos del rastreador

  • El servidor debe usar codificaciones gzip y deflate.
  • Es necesario incluir en la lista todas las propiedades de Open Graph antes del primer MB del sitio web o app. De lo contrario, las propiedades se truncarán.
  • Asegúrate de que el rastreador pueda extraer el contenido en pocos segundos, o Facebook no podrá mostrarlo.
  • Tu sitio web o app debe generar y devolver una respuesta con todas las propiedades necesarias según los bytes que se especifican en el encabezado Range de la solicitud del rastreador, o ignorar el encabezado Range por completo.
  • Agrega a la lista de autorizados las cadenas de agente de usuario o las direcciones IP utilizadas por el rastreador (la segunda opción es más segura).
  • Asegúrate de que tu app o sitio web permita al rastreador de Facebook rastrear la política de privacidad asociada a tu app o sitio web.

Agentes de usuario y direcciones IP del rastreador

Cadenas del agente de usuario del rastreador de Facebook:

  • facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
  • facebookexternalhit/1.1
  • facebookcatalog/1.0

Para obtener una lista actualizada de las direcciones IP que utiliza el rastreador, ejecuta el siguiente comando.

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

Estas direcciones IP cambian con frecuencia.

Ejemplo de respuesta

...
route:      69.63.176.0/21
route:      69.63.184.0/21
route:      66.220.144.0/20
route:      69.63.176.0/20
route6:     2620:0:1c00::/40
route6:     2a03:2880::/32
route6:     2a03:2880:fffe::/48
route6:     2a03:2880:ffff::/48
route6:     2620:0:1cff::/48
... 

Solución de problemas

Si el contenido del sitio web o app no está disponible en el momento del rastreo, puedes forzar un rastreo cuando esté disponible, ya sea pasando la URL por el depurador de contenido compartido o utilizando la API de contenido compartido.

Puedes simular una solicitud del rastreador con el siguiente código:

curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "$URL"