Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mconf/bigbluebutton-api-js
A very simple Javascript library that generates links to all methods in BigBlueButton's API
https://github.com/mconf/bigbluebutton-api-js
Last synced: 20 days ago
JSON representation
A very simple Javascript library that generates links to all methods in BigBlueButton's API
- Host: GitHub
- URL: https://github.com/mconf/bigbluebutton-api-js
- Owner: mconf
- License: other
- Created: 2012-11-30T18:47:40.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2022-11-04T13:59:02.000Z (about 2 years ago)
- Last Synced: 2024-04-12T16:08:41.578Z (9 months ago)
- Language: CoffeeScript
- Homepage: http://mconf.github.io/bigbluebutton-api-js
- Size: 93.8 KB
- Stars: 19
- Watchers: 10
- Forks: 44
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
bigbluebutton-api-js
====================`bigbluebutton-api-js` is a very simple Javascript library that
generates links to all methods in
[BigBlueButton's API](http://code.google.com/p/bigbluebutton/wiki/API).
It's written in [Coffeescript](http://coffeescript.org/) and should
work in the browser or in [Node.js](http://nodejs.org/) applications.Example
-------Open `example/index.html` or check http://mconf.github.com/bigbluebutton-api-js
for a quick example of what this lib does.Features
--------* Gives you links to all API methods.
* No matter what parameters you pass to it, the lib will only use the parameters that are supported for each API call.
* You can pass meta parameters to `create` using the prefix `meta_`.
* You can pass any custom parameters to all API calls with the prefix `custom_`.
* You can get links for custom API calls. This is useful when developing new API methods.
* You can also get links to a single method or just get the checksum for a call.Usage
-----This library requires:
* [jsSHA](https://github.com/Caligatio/jsSHA), used to calculate checksums.
You can download it from their website or use the minified version that can be found in the
`vendor` directory.Add these libraries and `bigbluebutton-api.js` to your page. Then you can get the links to the API calls
with a code similar to this example (code in Coffeescript):```coffeescript
# Create an API object passing the url and the shared secret
api = new BigBlueButtonApi("http://test-install.blindsidenetworks.com/bigbluebutton/api/",
"8cd8ef52e8e101574e400365b55e11a6")# A hash of parameters.
# The parameter names are the same names BigBlueButton expects to receive in the API calls.
# The lib will make sure that, for each API call, only the parameters supported will be used.
params =
name: "random-123"
meetingID: "random-123"
moderatorPW: "mp"
attendeePW: "ap"
password: "mp" # usually equals "moderatorPW"
welcome: "
Welcome to %%CONFNAME%%!"
fullName: "User 8584148"
publish: false
random: "416074726"
record: false
recordID: "random-9998650"
voiceBridge: "75858"
meta_anything: "My Meta Parameter"
custom_customParameter: "Will be passed as 'customParameter' to all calls"urls = []
for method in api.availableApiCalls()
urls.push { name: method, url: api.urlFor(method, params) }
```This call will create an array with several objects, each one defining a single API call. These objects have the following format:
```coffeescript
{
name: 'join'
url: 'http://test-install.blindsidenetworks.com/bigbluebutton/api/create?name=random-266119&meetingID=random-266119&moderatorPW=mp&attendeePW=ap&voiceBridge=76262&record=false&checksum=6c529b6e31fbce9668fd66d99a09da7a78f4'
}
```Where:
* `name`: the name of the API method.
* `url`: the URL to call the method, as returned by `bigbluebutton-api-js`.### Custom parameters
You can pass custom parameters using the prefix `custom_`. These parameters will be included in
**all** API calls.```coffeescript
params =
name: "random-123"
meetingID: "random-123"
custom_customParameter: "random"
custom_another: 123
url = api.urlFor('join', params)
```Will return URLs such as:
```coffeescript
"http://server.com/bigbluebutton/api/create?name=random-123&meetingID=random-123&customParameter=random&another=123&checksum=6c529b6e31fbce9668fd66d99a09da7a78f4"
```### Metadata
Pass metadata parameters using the prefix `meta_`. These parameters will be included in only in the API calls
that support metadata.```coffeescript
params =
name: "random-9998650"
meetingID: "random-9998650"
meta_any: "random"
meta_another: 123
url = api.urlFor('create', params)
```Will return URLs such as:
```coffeescript
"http://server.com/bigbluebutton/api/create?name=random-123&meetingID=random-123&meta_any=random&meta_another=123&checksum=6c529b6e31fbce9668fd66d99a09da7a78f4"
```### Custom API calls
You can pass any method you'd like to `urlFor()`, even if it's not a method supported
by default on BigBlueButton's API. **All** the parameters passed to `urlFor` will be
added to the API call.```coffeescript
params =
meetingID: "random-9998650"
meta_any: "random"
custom_another: 123
url = api.urlFor('customApiCall', params)
```Will return URLs such as:
```coffeescript
"http://server.com/bigbluebutton/api/customApiCall?meetingID=random-123&meta_any=random&another=123&checksum=6c529b6e31fbce9668fd66d99a09da7a78f4"### More
* To get just the checksum for a call you can use the method `checksum`. For example: `api.checksum("isMeetingRunning", "meetingID=mymeeting&custom=1", false)`.
Development
-----------At first, install [Node.js](http://nodejs.org/) (see `package.json` for the specific version required).
Install the dependencies with:
npm install
Then, to compile the coffee files into javascript, run:
cake build
This will compile all `*.coffee` files in `/src` to javascript files in `/lib`.
To watch for changes and compile the files automatically run:
cake watch
License
-------Distributed under The MIT License (MIT), see `LICENSE`.