Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

bigbluebutton-js

aakatev4.2kISC0.2.0TypeScript support: definitely-typed

JavaScript wrapper for BigBlueButton API

bigbluebutton, bbb, api

readme

BigBlueButtonJs Logo

JavaScript layer to interact with BigBlueButton API. Supports WebHooks.

Read the Official Documentation

Follow the Changelog

Features

  • Supports BBB API, and WebHooks
  • Provides methods to construct URLs, and calculate SHA checksum
  • Provides HTTP client that converts XML responses to JS objects
  • Works with Node 10 or newer
  • Works in browser dist/browser.js

Installation

npm i bigbluebutton-js

Usage

You will need to provide BigBlueButton URL and secret to the script. You can obtain them by logging into you BBB server, and running:

bbb-conf --secret

Use the obtained values in your script:

const bbb = require('bigbluebutton-js')
let api = bbb.api(
    process.env.BBB_URL, 
    process.env.BBB_SECRET
  )

For comprehensive getting started section, see official docs.

Examples

The following example shows how to create a room, and links for moderator and attendee to join:

const bbb = require('bigbluebutton-js')

// BBB_URL and BBB_SECRET can be obtained
// by running bbb-conf --secret on your BBB server
// refer to Getting Started for more information
let api = bbb.api(
    process.env.BBB_URL, 
    process.env.BBB_SECRET
  )
let http = bbb.http

// api module itslef is responsible for constructing URLs
let meetingCreateUrl = api.administration.create('My Meeting', '1', {
  duration: 2,
  attendeePW: 'secret',
  moderatorPW: 'supersecret',
})

// http method should be used in order to make calls
http(meetingCreateUrl).then((result) => {
  console.log(result)

  let moderatorUrl = api.administration.join('moderator', '1', 'supersecret')
  let attendeeUrl = api.administration.join('attendee', '1', 'secret')
  console.log(`Moderator link: ${moderatorUrl}\nAttendee link: ${attendeeUrl}`)

  let meetingEndUrl = api.administration.end('1', 'supersecret')
  console.log(`End meeting link: ${meetingEndUrl}`)
})

For comprehensive examples section, see official docs.

Reference

Our reference is divided into two sections: API and WebHooks.

Tests

To run the test suites some prior configuration is required. First, create a .env file in library root. The file should have the following content:

BBB_URL=https://mysite.com/bigbluebutton
BBB_SECRET=MySuperSecretSharedToken

Make sure, you installed development dependencies (mocha, and dotenv). Now you can run npm run test:

npm run test

License

This project is licensed under the ISC License - see the LICENSE file for details

Acknowledgments

changelog

0.2.0

  • (Fix) XML parser is now consistent no matter how many meetings or recordings are returned (Used to return single object or array for two or more objects)
  • Added examples of usage

0.1.0

  • node native crpyto module replaced with hash.js
  • added browser-compatible build
  • utils are now available to external libraries

0.0.8

  • URL normalizer added
  • Updated documentation

0.0.5

  • WebHooks support added

0.0.1

  • Forked bbb-promise
  • requests replaced with axios
  • sha1 replaced with node native crpyto module
  • xml2js-es6-promise replaced with fast-xml-parser