ciscospark
The Cisco Webex JS SDK
Install
npm install --save ciscospark
Usage
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 ciscospark = require(`ciscospark`);
const teams = ciscospark.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
teams.rooms.create({ title: `My First Room` }).then(room => {
return Promise.all([
teams.memberships.create({
roomId: room.id,
personEmail: `alice@example.com`
}),
teams.memberships.create({
roomId: room.id,
personEmail: `bob@example.com`
})
]).then(() =>
teams.messages.create({
markdown: `**Hi Everyone**`,
roomId: room.id
})
);
});
A note on browser usage
We do provide a built, minified version of the SDK that includes window.ciscospark
which is hosted on our repo and can be used with gitcdn.xyz.
<script src="https://gitcdn.xyz/repo/webex/spark-js-sdk/master/packages/node_modules/ciscospark/umd/ciscospark.min.js"></script>
We do not provide a built version of the SDK that includes window.ciscospark
.
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.webexteams
.
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 initTeams } from 'ciscospark';
const teams = (window.webexteams = initTeams({
credentials: {
access_token: <your webex teams access token>
}
}));
// Create a room with the title "My First Room"
teams.rooms
.create({
title: 'My First Room!'
})
.catch((error) => {
console.error(error);
});
// Filter for "My First Room" from the last 10 rooms
teams.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!"
teams.messages.create({
roomId,
text: 'Hello World!'
});
// Log the the room name and the message we created
return teams.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.
API
Full API docs are published at the docs site.
Maintainers
This package is maintained by Cisco Webex for Developers.
Contribute
Pull requests welcome. Please see CONTRIBUTING.md for more details.
License
© 2016-2018 Cisco and/or its affiliates. All Rights Reserved.