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 provide a built, minified version of the SDK, that includes window.Webex
. You can access it via unpkg, jsdelivr, or gitcdn.xyz.
<!-- unpkg -->
<script crossorigin src="https://unpkg.com/webex/umd/webex.min.js"></script>
<!-- jsdelivr -->
<script crossorigin src="https://cdn.jsdelivr.net/npm/webex/umd/webex.min.js"></script>
<!-- gitcdn -->
<script crossorigin src="https://gitcdn.xyz/repo/webex/webex-js-sdk/master/packages/node_modules/webex/umd/webex.min.js"></script>
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 webex
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>
- Add a compatible browser version for parcel to compile for
- Add the
browserlist
property to yourpackage.json
. We're using the last two versions of both Chrome and Firefox in this example
"browserslist": [
"last 2 Chrome versions"
"last 2 Firefox versions"
]
NOTE: This is needed for parcel to correctly compile dependencies the SDK uses for the browser environment. The SDK uses the
last 2 versions of Chrome and Firefox
, so we're including it here too. You can use browserl.ist to configure your own setup
- 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 demo them by going to js.samples.s4d.io/ or you can run them yourself by following this guide in the Contribution Guide
Samples | Hosted |
---|---|
Samples code | 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-2020 Cisco and/or its affiliates. All Rights Reserved.
See LICENSE for details.