Upgrading from Cisco Spark to Webex?
This is a monorepo containing all officially maintained Cisco Webex JS SDK modules in the same repo. webex is a collection of node modules targeting our external APIs.
We test against the Active LTS (Long Term Support) version of Node.js and use npm@6 to run security audits.
To install the latest stable version of the SDK from NPM:
npm install --save webex
To use the SDK, you will need Cisco Webex credentials. If you do not already have a Cisco Webex account, visit Cisco Webex for Developers to create your account and retrieve your access token.
See the detailed docs for more usage examples.
const Webex = require(`webex`);
const webex = Webex.init({
credentials: {
access_token: <your webex teams access token>
}
});
// Create a room with the title "My First Room"
// Add Alice and Bob to the room
// Send a **Hi Everyone** message to the room
webex.rooms.create({ title: `My First Room` }).then(room => {
return Promise.all([
webex.memberships.create({
roomId: room.id,
personEmail: `[email protected]`
}),
webex.memberships.create({
roomId: room.id,
personEmail: `[email protected]`
})
]).then(() =>
webex.messages.create({
markdown: `**Hi Everyone**`,
roomId: room.id
})
);
});
We do provide a built, minified version of the SDK, that includes window.webex
, which is hosted on our repo and can be used with gitcdn.xyz.
<script src="https://gitcdn.xyz/repo/webex/webex-js-sdk/master/packages/node_modules/webex/umd/webex.min.js"></script>
In-browser usage is almost the same as Node.js, but it handles the user authentication flow for you. See the browser guide for more information.
If you're already using a bundler (like Webpack or Rollup) you can simply import/require the package and use the above snippet and assign the initialized team
variable to window.webex
.
For a quick example, we'll use Parcel to bundle the SDK for a website. For any more information and questions on how to use Parcel, please head to their website.
- Create
index.js
.
import { init as initWebex } from 'webex';
// Initialize the SDK and make it available to the window
const webex = (window.webex = initWebex({
credentials: {
access_token: <your webex teams access token>
}
}));
// Create a room with the title "My First Room"
webex.rooms
.create({
title: 'My First Room!'
})
.catch((error) => {
console.error(error);
});
// Filter for "My First Room" from the last 10 rooms
webex.rooms
.list({
max: 10
})
.then((rooms) => {
// Destructure room properties for its id (aliased to roomId) and title
const { id: roomId, title } = rooms.items.filter(
room => room.title === 'My First Room!'
)[0];
// Post message "Hello World!" to "My First Room!"
webex.messages.create({
roomId,
text: 'Hello World!'
});
// Log the the room name and the message we created
return webex.messages
.list({ roomId, max: 1 })
// Destructure promised value to get the text property from the first item in items array
.then(({ items: [{ text }] }) =>
console.log(`Last message sent to room "${title}": ${text}`)
);
})
.catch((error) => {
console.error(error);
});
- Create
index.html
.
<html>
<head>
<title>Webex SDK for Browsers</title>
</head>
<body>
<script src="./index.js"></script>
</body>
</html>
- Run
parcel index.html
in your terminal. - Go to http://localhost:1234 and open the developer console to see the output.
Sample code can be found in packages/node_modules/samples. You can run them yourself with the following commands:
Note: This installs all of the SDK's tooling dependencies, so you'll need
libgcrypt
and (possibly)graphicsmagick
. On a mac, you can install these withbrew install graphicsmagick libgcrypt
.
git clone [email protected]:webex/webex-js-sdk.git
cd webex-js-sdk
npm install
npm run samples:serve
Samples | localhost | Hosted |
---|---|---|
Samples code | https://localhost:8000/ | https://js.samples.s4d.io/ |
Pull requests welcome. Please see CONTRIBUTING.md for more details about building the packages and submitting pull requests for suggested changes.
© 2016-2019 Cisco and/or its affiliates. All Rights Reserved.
See LICENSE for details.