Esta guía explica cómo configurar y solucionar problemas de los oneboxes en Discourse. Cubre la configuración de administrador, cómo funcionan los oneboxes y los pasos para resolver problemas comunes.
Nivel de usuario requerido: Administrador
Los oneboxes son vistas previas de enlaces enriquecidas que los usuarios pueden crear en sus publicaciones. Si bien los usuarios pueden generar estas vistas previas fácilmente, los administradores del sitio tienen controles adicionales y pueden necesitar solucionar problemas cuando los enlaces no se previsualizan como se espera.
Configuración de administrador
Para administrar la configuración de onebox:
- Vaya al panel de Administración
- Navegue a la sección de configuración del sitio
- Busque “onebox”
Verá una lista de configuraciones relacionadas con onebox:
Algunas configuraciones notables incluyen:
post onebox maxlength: Controla la cantidad de texto incluido en un oneboxenable inline onebox on all domains: Habilita los oneboxes en línea, convirtiendo las URL simples en títulos enlazados (ej.https://en.wikipedia.org/wiki/Fun_(band)se convierte en “Fun (band) - Wikipedia”)blocked onebox domains: Le permite deshabilitar los oneboxes para dominios específicos
Cómo funcionan los oneboxes
Cuando se incluye un enlace en una publicación, Discourse visita la página de destino y busca etiquetas Open Graph u oEmbed, incluyendo:
- Dirección del sitio
- Título
- Imagen destacada
- Icono del sitio (o favicon)
- Descripción (obligatorio)
- Precio del producto (si es relevante)
Discourse requiere que la etiqueta de descripción esté presente y contenga suficiente texto para resumir la página. Sin esto, el enlace de destino no se convertirá en onebox.
Aquí hay un ejemplo de onebox para https://discourse.org/ que muestra el título del sitio, la imagen destacada, el icono y la descripción:
Solución de problemas
Si los oneboxes no funcionan como se espera, pruebe estos pasos:
-
Pruebe el sitio usando iFramely:
- Pegue el enlace y compruebe si está utilizando las metaetiquetas OpenGraph u oEmbed correctas
- Asegúrese de que el texto de la descripción esté presente y sea adecuado
-
Compruebe si la solicitud de onebox está siendo bloqueada:
- Algunos hosts pueden bloquear agentes de usuario “desconocidos”
- Verifique que el sitio web de destino no esté bloqueando el agente de usuario de Discourse
-
Para enlaces internos que no se muestran como oneboxes:
- Asegúrese de que el enlace no esté en una categoría segura
- Los enlaces internos solo generan oneboxes en categorías públicas o dentro de la misma categoría por razones de seguridad
Desde la consola de rails puede invalidar/obtener explícitamente oneboxes llamando a los métodos mientras prueba haciendo:
[1] pry(main)=> Oneboxer.invalidate(url)
=> 0
[2] pry(main)=> Oneboxer.onebox(url)
=> "…<aside class=\"onebox …(elidido)"
[3] pry(main)=> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)=> InlineOneboxer.onebox(url)
=> "…<aside class=\"onebox …(elidido)"
