Esta guía explica cómo configurar y solucionar problemas de oneboxes en Discourse. Cubre la configuración del administrador, cómo funcionan los oneboxes y los pasos para resolver problemas comunes.
Nivel de usuario requerido: Administrador
Los oneboxes son previsualizaciones enriquecidas de enlaces que los usuarios pueden crear en sus publicaciones. Si bien los usuarios pueden generar fácilmente estas previsualizaciones, los administradores del sitio tienen controles adicionales y pueden necesitar solucionar problemas cuando los enlaces no se previsualizan como se esperaba.
Configuración del 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 (por ejemplo,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 o oEmbed, que incluyen:
- 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 \u003chttps://discourse.org\u003e 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 esperaba, pruebe estos pasos:
-
Pruebe el sitio usando iFramely:
- Pegue el enlace y verifique si está utilizando las metaetiquetas OpenGraph o oEmbed correctas
- Asegúrese de que el texto de la descripción esté presente y sea adecuado
-
Verifique si la solicitud de onebox está siendo bloqueada:
- Algunos hosts pueden bloquear agentes de usuario “desconocidos”
- Verifique que el sitio 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 se convierten en onebox 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 los 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 …(elided)"
[3] pry(main)> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)> InlineOneboxer.onebox(url)
=> "<aside class=\"onebox …(elided)"
