Qué hace
Convierte este tipo de resultado:
(donde tu servidor no ha podido recuperar el código fuente de la página y, por lo tanto, no puede extraer las etiquetas necesarias para construir el onebox)
¡En esto!:
Simplemente proporciona una ruta alternativa para que el onebox obtenga su código fuente de la página con el que buscar metadatos cuando el servidor de destino rechaza tu conexión.
No cambia nada sobre cómo el onebox procesa el código fuente de la página para encontrar los metadatos y renderizar el cuadro.
Su propósito es permitirte ingresar los detalles y las credenciales de una API de terceros para recuperar la página en lugar de realizar una llamada HTTP normal directamente a la página de destino.
Por qué
Descubrí que se me prohibía el acceso a varios sitios comerciales desde mis servidores, por lo que los oneboxes fallaban al renderizarse. Esto ayuda esencialmente a aprovechar la confiabilidad de la API de terceros, algo así como un servicio de correo.
Por qué es rentable
Puedes usar un VPS relativamente económico y aún así obtener una funcionalidad de oneboxing confiable, incluso si tu IP o tu agente de usuario están de alguna manera en una “lista negra”.
No lo necesitas si
Estás logrando hacer oneboxing de todo tu contenido objetivo correctamente con la instalación estándar y todos los usuarios están satisfechos.
Requisitos previos
Necesitas una cuenta con una API de terceros adecuada.
Configuración
onebox assistant api base address: https://api.embed.rocks/api/
El ejemplo anterior utiliza embed.rocks, pero en el futuro podría agregarse compatibilidad con otras API; sin embargo, embed.rocks es relativamente buena opción en este momento.
onebox assistant api base query: ?url=
onebox assistant api options: &skip=article,description,oembed,imextra&include=source
onebox assistant api page source field: source
También necesitarás ingresar tu clave API proporcionada por embed.rocks.
Ver ejemplo a continuación
Esta configuración te permite ignorar la precarga (para verificar si el rastreo directo devuelve un resultado) y usar la API desde el principio.

por defecto DESACTIVADO
Recomiendo establecer esto en VERDADERO.
Por supuesto, esto es más costoso, pero a menudo produce mejores resultados, ya que hay algunos casos en los que la precarga se redirige a la página incorrecta porque no eres considerado confiable.
Información de soporte
Recuerda, si has intentado anteriormente hacer oneboxing de un enlace, el núcleo de Discourse almacenará el resultado en caché.
Puedes agregar una cadena de consulta aleatoria al final para superar la caché: https://mylink.com/todaynews?random=random
También puedes verificar que la API esté respondiendo, por ejemplo:
curl -X GET "https://api.embed.rocks/api/?url=https%3A%2F%2Fnews.bbc.co.uk%0A&skip=article,description,oembed,imextra&include=source" -H "x-api-key: %%%tu-clave-api%%%"
Necesitas codificar en URL el sitio al que estás llamando (el valor del parámetro url) usando algún sitio como este (¡no avalado!).
Limitaciones conocidas
-
Solo ha sido probado con un proveedor en este momento y no se ha probado en otros. Ese proveedor es https://embed.rocks (con el cual no tengo ninguna afiliación). Estoy dispuesto a considerar el soporte de más servicios si el trabajo está patrocinado.
-
El parcheo de monkey se realiza a nivel de método. Esto anula más código del necesario, lo que aumenta el riesgo de que el plugin se rompa después de una actualización del núcleo. Sin embargo, ¿no creo que haya una manera de minimizar esto aún más?
Cómo instalar plugins
Consulta la guía aquí: Install plugins on a self-hosted site
Este repositorio es: https://github.com/merefield/discourse-onebox-assistant
https://github.com/merefield/discourse-onebox-assistant
Toda retroalimentación es bienvenido. Por favor
en GitHub si lo encuentras útil.



