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
roleen lugar depassword,sendChatMessageyclientSettingsOverride? - 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.