Capítulo 22

Bibliotecas de cliente y herramientas de integración

Las bibliotecas cliente abstraen los detalles del cálculo del checksum, la construcción de solicitudes HTTP y el análisis de respuestas XML, lo que te permite interactuar con la API de BigBlueButton mediante métodos tipados en tu lenguaje de programación preferido. Este capítulo proporciona una visión general de las bibliotecas disponibles, herramientas de integración y orientación para elegir la opción adecuada para tu proyecto.

Bibliotecas oficiales

Las siguientes bibliotecas son mantenidas por el propio proyecto BigBlueButton o por colaboradores estrechamente afiliados. Por lo general, están bien mantenidas y siguen las nuevas funciones de la API a medida que se publican.

Biblioteca Lenguaje Repositorio Notas
bigbluebutton-api-php PHP GitHub Biblioteca oficial de PHP. Utilizada por el plugin BBB de Moodle. Mantenida activamente.
bigbluebutton-api-js JavaScript / Node.js GitHub Biblioteca oficial de JavaScript para uso de Node.js del lado del servidor.

Bibliotecas de la comunidad

Estas bibliotecas son desarrolladas y mantenidas por la comunidad. Su calidad y frecuencia de actualización varían; verifica siempre el estado de mantenimiento y la versión de BBB compatible antes de adoptar una.

Biblioteca Lenguaje Repositorio Notas
bigbluebutton-api-python Python PyPI Biblioteca Python mantenida por la comunidad.
bigbluebutton-api-ruby Ruby RubyGems Del proyecto Mconf. Mantenida por la comunidad.

Esta lista no es exhaustiva. Existen proyectos adicionales de la comunidad que no se enumeran aquí. El mantenimiento y la vigencia de cada biblioteca son responsabilidad de sus respectivos responsables; verifica siempre que una biblioteca sea compatible con tu versión objetivo de BBB antes de usarla en producción.

Herramientas de integración

Más allá de las bibliotecas cliente, varias herramientas pueden ayudarte a probar, gestionar y escalar implementaciones de BigBlueButton:

Herramienta Descripción
API Mate (bigbluebutton.org) Herramienta web para probar llamadas a la API de BBB. bigbluebutton.org/api-mate/
API Mate (Mconf) Herramienta alternativa basada en web para probar la API. mconf.github.io/api-mate/
bbb-conf Herramienta de línea de comandos en el servidor BBB. Muestra el secreto, la URL y el estado mediante bbb-conf --secret.
Greenlight Frontend oficial de BBB construido con Ruby on Rails. Usa la API internamente para gestionar salas y reuniones.
Scalelite Balanceador de carga para múltiples servidores BBB. Reenvía y distribuye llamadas a la API entre las instancias disponibles.

Elegir una biblioteca

Al evaluar una biblioteca cliente para tu proyecto, considera los siguientes criterios:

  • Compatibilidad con versiones de BBB: ¿La biblioteca admite funciones de BBB 3.0 como role en lugar de password, sendChatMessage y clientSettingsOverride?
  • Algoritmo de checksum: ¿La biblioteca admite SHA-256 y SHA-512, o solo el SHA-1 heredado?
  • Compatibilidad con POST: ¿Puede la biblioteca enviar cuerpos XML (requeridos para subidas de presentaciones y clientSettingsOverride)?
  • Estado de mantenimiento: ¿Cuándo fue el último commit? ¿Hay problemas sin resolver sin ninguna respuesta?
  • Compatibilidad con webhooks: ¿La biblioteca ofrece funciones auxiliares para el registro de webhooks y la validación de callbacks?

Si solo necesitas operaciones básicas como crear y unirte a reuniones, una biblioteca con muchas funciones puede no ser necesaria. Una integración personalizada y ligera puede ser más simple de mantener y más fácil de auditar.

Crear una integración personalizada

Si ninguna de las bibliotecas existentes se ajusta a tus requisitos, puedes crear tu propia integración con cualquier lenguaje capaz de trabajar con HTTP. La lógica principal consta de tres componentes:

Función de checksum — calcula el hash SHA-256 a partir del nombre de la llamada API, la cadena de consulta y el secreto compartido. Consulta el capítulo de autenticación por checksum para ver ejemplos de implementación en varios lenguajes.

HTTP GET/POST — envía la solicitud a la URL de la API de BBB con el checksum añadido como parámetro de consulta.

Análisis de XML — analiza la XML de respuesta y comprueba el campo returncode para SUCCESS o FAILED.

Para integraciones sencillas que solo necesitan create y join, esto puede lograrse en solo unas pocas líneas de código — no es estrictamente necesaria una biblioteca completa.

# Minimal example: create + join (pseudocode)

secret = "replace-with-secret"
base   = "https://api-guide.bbbserver.com/bigbluebutton/api"

# 1. Build query string
params = "name=Demo&meetingID=replace-with-meeting-id&attendeePW=replace-with-password&moderatorPW=replace-with-password"

# 2. Compute checksum
checksum = sha256("create" + params + secret)

# 3. Send request
response = http_get(base + "/create?" + params + "&checksum=" + checksum)

# 4. Parse XML response
if parse_xml(response).returncode == "SUCCESS":
    # Build join URL for a moderator
    join_params = "fullName=Admin&meetingID=demo-1&role=MODERATOR"
    join_checksum = sha256("join" + join_params + secret)
    redirect_to(base + "/join?" + join_params + "&checksum=" + join_checksum)

Genera siempre las llamadas API en el lado del servidor. El secreto compartido nunca debe exponerse en código del lado del cliente, como JavaScript que se ejecuta en el navegador o en aplicaciones móviles.

Preguntas frecuentes

No. Una biblioteca cliente es práctica, pero no obligatoria. La API usa solicitudes HTTP GET/POST simples con un parámetro checksum. Cualquier lenguaje que pueda hacer solicitudes HTTP, calcular un hash SHA-256 y analizar XML puede interactuar con la API directamente.

La biblioteca oficial de bigbluebutton-api-php es la opción recomendada. Es mantenida activamente por el proyecto BBB y es utilizada por el plugin Moodle BigBlueButton.

Sí. La comunidad ha creado bibliotecas para lenguajes adicionales como Java, .NET y Go. Busca en los repositorios de paquetes para tu lenguaje o consulta los foros de la comunidad BigBlueButton para obtener recomendaciones.

Usa API Mate, una herramienta web que te permite construir y enviar llamadas a la API de BBB de forma interactiva. Introduces la URL de tu servidor y el secreto compartido, seleccionas un endpoint, rellenas los parámetros y la herramienta genera el checksum y envía la solicitud por ti.

Greenlight es una aplicación web completa (frontend) para gestionar salas y reuniones de BigBlueButton. Una biblioteca cliente es un paquete de código que usas dentro de tu propia aplicación para hacer llamadas API programáticamente. Greenlight usa internamente una biblioteca cliente.

Scalelite es un balanceador de carga que distribuye llamadas API entre varios servidores BigBlueButton. Lo necesitas cuando un solo servidor no puede manejar el número esperado de reuniones o participantes concurrentes. Actúa como un proxy transparente: tu aplicación envía llamadas API a Scalelite, que las enruta a un servidor BBB disponible.