node-sparky v3.1.22
node-sparky
Cisco Spark SDK for Node JS (Version 3)
var Spark = require('node-sparky');
var spark = new Spark({ token: '<my token>' });
spark.roomsGet(10)
.then(function(rooms) {
// process rooms as array
rooms.forEach(function(room) {
console.log(room.title);
});
})
.catch(function(err) {
// process error
console.log(err);
});
If you are coming from using node-sparky version 2.x or earlier, note that the architecture, commands, and some variable names have changed. While this release is similar to previous versions, there are some major differences. Please read the API docs below before migrating your code to this release. If you are looking for the old release version, node-sparky@2.0.27 is still available to be installed through NPM.
Features
- Built in rate limiter and outbound queue that allows control over the number of parallel API calls and the minimum time between each call.
- Transparently handles 429 (and/or other customizable) http errors and re-queues those requests.
- File processor for retrieving attachments from room.
- Event emitters tied to request, response, error, retry, and queue drops.
- Returns promises that comply with A+ standards..
- Handles pagination transparently. (Receive unlimited records)
- (new) Support for Spark API Advanced Webhooks
- (new) Support Teams API
- (new) Support for markdown formatted messages
- (new) Support for authenticated HMAC-SHA1 webhooks
Installation
This module can be installed via NPM:
npm install node-sparky --save
Reference
Initialization and Configuration
var Spark = require('node-sparky');
var spark = new Spark({
token: 'mytoken',
webhookUrl: 'http://mywebhook.url/path',
});
Classes
Objects
Events
Spark
Kind: global class
Throw: Error Throws on spark token missing in options object.
- Spark
- new Spark(options)
- .options : object
- .roomsGet([max]) ⇒ Promise.<Array>
- .roomsDirect([max]) ⇒ Promise.<Array>
- .roomsGroup([max]) ⇒ Promise.<Array>
- .roomsByTeam(teamId, [max]) ⇒ Promise.<Array>
- .roomGet(roomId) ⇒ Promise.<Room>
- .roomAdd(title) ⇒ Promise.<Room>
- .roomRename(roomId, title) ⇒ Promise.<Room>
- .roomRemove(roomId) ⇒ Promise
- .peopleSearch(displayName, [max]) ⇒ Promise.<Array>
- .personGet(personId) ⇒ Promise.<Person>
- .personMe() ⇒ Promise.<Person>
- .personByEmail(email) ⇒ Promise.<Person>
- .attachmentActionGet(attachmentActionId) ⇒ Promise.<AttachmentAction>
- .attachmentActionCreate(attachmentAction) ⇒ Promise.<AttachmentAction>
- .messagesGet(roomId, [max]) ⇒ Promise.<Array>
- .messageGet(messageId) ⇒ Promise.<Message>
- .messageSendPerson(email, message) ⇒ Promise.<Message>
- .messageSendRoom(roomId, message) ⇒ Promise.<Message>
- .messageStreamRoom(roomId, message) ⇒ Promise.<Message>
- .upload(roomId, filepath) ⇒ Promise.<Message>
- .messageRemove(messageId) ⇒ Promise
- .contentGet(id) ⇒ Promise.<File>
- .contentByUrl(url) ⇒ Promise.<File>
- .teamsGet([max]) ⇒ Promise.<Array>
- .teamGet(teamId) ⇒ Promise.<Team>
- .teamAdd(name) ⇒ Promise.<Team>
- .teamRoomAdd(teamId, title) ⇒ Promise.<Room>
- .teamRename(teamId, name) ⇒ Promise.<Team>
- .teamRemove(teamId) ⇒ Promise
- .teamMembershipsGet(teamId, [max]) ⇒ Promise.<Array>
- .teamMembershipGet(membershipId) ⇒ Promise.<TeamMembership>
- .teamMembershipAdd(teamId, email, moderator) ⇒ Promise.<TeamMembership>
- .teamMembershipSetModerator(membershipId) ⇒ Promise.<TeamMembership>
- .teamMembershipClearModerator(membershipId) ⇒ Promise.<TeamMembership>
- .teamMembershipRemove(membershipId) ⇒ Promise
- .membershipsGet([max]) ⇒ Promise.<Array>
- .membershipsByRoom(roomId, [max]) ⇒ Promise.<Array>
- .membershipGet(membershipId) ⇒ Promise.<Membership>
- .membershipByRoomByEmail(roomId, personEmail) ⇒ Promise.<Membership>
- .membershipAdd(roomId, email, moderator) ⇒ Promise.<Membership>
- .membershipSetModerator(membershipId) ⇒ Promise.<Membership>
- .membershipClearModerator(membershipId) ⇒ Promise.<Membership>
- .membershipRemove(membershipId) ⇒ Promise
- .webhooksGet([max]) ⇒ Promise.<Array>
- .webhookGet(webhookId) ⇒ Promise.<Webhook>
- .webhookAdd(resource, event, name, [filter]) ⇒ Promise.<Webhook>
- .webhookRemove(webhookId) ⇒ Promise
- .webhookAuth(signature, payload) ⇒ Boolen
new Spark(options)
Creates a Spark API instance that is then attached to a Spark Account.
Param | Type | Description |
---|---|---|
options | Object | Configuration object containing Spark settings |
spark.options : object
Options Object
Kind: instance namespace of Spark
Properties
Name | Type | Default | Description |
---|---|---|---|
token | string | Spark Token. | |
webhookUrl | string | URL that is used for SPark API to send callbacks. | |
webhookSecret | string | If specified, creates webhooks using this secret. The incoming webhook must still be authenticated. See Spark.webhookAuth(). | |
maxPageItems | number | 50 | Max results that the paginator uses. |
maxConcurrent | number | 3 | Max concurrent sessions to the Spark API |
minTime | number | 600 | Min time between consecutive request starts. |
requeueMinTime | number | minTime*10 | Min time between consecutive request starts of requests that have been re-queued. |
requeueMaxRetry | number | 3 | Msx number of atteempts to make for failed request. |
requeueCodes | array | 429,500,503 | Array of http result codes that should be retried. |
requestTimeout | number | 20000 | Timeout for an individual request recieving a response. |
queueSize | number | 10000 | Size of the buffer that holds outbound requests. |
requeueSize | number | 10000 | Size of the buffer that holds outbound re-queue requests. |
spark.roomsGet(max) ⇒ Promise.<Array>
Return all Spark Rooms registered to account.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
max | Integer | Number of records to return |
Example
spark.roomsGet(10)
.then(function(rooms) {
// process rooms as array
rooms.forEach(function(room) {
console.log(room.title);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomsDirect(max) ⇒ Promise.<Array>
Return all Spark 1:1 Rooms.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
max | Integer | Number of records to return |
Example
spark.roomsDirect(10)
.then(function(rooms) {
// process rooms as array
rooms.forEach(function(room) {
console.log(room.title);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomsGroup(max) ⇒ Promise.<Array>
Return all Spark Group Rooms.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
max | Integer | Number of records to return |
Example
spark.roomsGroup(10)
.then(function(rooms) {
// process rooms as array
rooms.forEach(function(room) {
console.log(room.title);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomsByTeam(teamId, max) ⇒ Promise.<Array>
Return all Spark Rooms for a particular Team ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | The Spark Team ID |
max | Integer | Number of records to return |
Example
spark.roomsByTeam('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 10)
.then(function(rooms) {
// process rooms as array
rooms.forEach(function(room) {
console.log(room.title);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomGet(roomId) ⇒ Promise.<Room>
Return details of Spark Room by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
Example
spark.roomGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(room) {
console.log(room.title);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomAdd(title) ⇒ Promise.<Room>
Add new Spark Room.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
title | String | Title for new Room |
Example
spark.roomAdd('myroom')
.then(function(room) {
console.log(room.title);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomRename(roomId, title) ⇒ Promise.<Room>
Rename Spark Room.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
title | String | Title for new Room |
Example
spark.roomRename('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'myroom2')
.then(function(room) {
console.log(room.title);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.roomRemove(roomId) ⇒ Promise
Remove Spark Room by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
Example
spark.roomRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function() {
console.log('Room removed.');
})
.catch(function(err) {
// process error
console.log(err);
});
spark.peopleSearch(displayName, max) ⇒ Promise.<Array>
Search Spark for People by display name.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
displayName | String | Search String to find as display name |
max | Integer | Number of records to return |
Example
spark.peopleSearch('John', 10)
.then(function(people) {
// process people as array
people.forEach(function(person) {
console.log(person.displayName);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.personGet(personId) ⇒ Promise.<Person>
Return details of Spark User by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
personId | String | Spark Person ID |
Example
spark.personGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(person) {
console.log(person.displayName);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.personMe() ⇒ Promise.<Person>
Return details of Spark User that has authenticated.
Kind: instance method of Spark
Example
spark.personMe()
.then(function(person) {
console.log(person.displayName);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.personByEmail(email) ⇒ Promise.<Person>
Return details of Spark User by Email.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
String | Email address of Spark User |
Example
spark.personByEmail('aperson@company.com')
.then(function(person) {
console.log(person.displayName);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.attachmentActionGet(attachmentActionId) ⇒ Promise.<AttachmentAction>
Return details of an attachment action by ID.
Kind: instance method of Spark
Returns: Promise.<AttachmentAction> - AttachmentAction object
Param | Type | Description |
---|---|---|
attachmentActionId | String | AttachmentAction ID |
Example
spark.attachmentActionGet('Tm90aGluZyB0byBzZWUgaGVy')
.then(attachmentAction => console.log(attachmentAction))
.catch(err => console.error(err));
spark.attachmentActionCreate(attachmentAction) ⇒ Promise.<AttachmentAction>
Create an Attachment Action.
Kind: instance method of Spark
Returns: Promise.<AttachmentAction> - AttachmentAction object
Param | Type | Description |
---|---|---|
attachmentAction | Object.<AttachmentAction> | Attachment Action to create |
Example
const newAttachmentAction = {
type: 'submit',
messageId: 'Tm90aGluZyB0byBzZWUgaGVy',
"inputs": {
"Name": "John Andersen",
"Url": "https://example.com",
"Email": "john.andersen@example.com",
"Tel": "+1 408 526 7209"
}
}
spark.attachmentActionCreate(newAttachmentAction)
.then(attachmentAction => console.log(attachmentAction.id))
.catch(err => console.error(err));
spark.messagesGet(roomId, max) ⇒ Promise.<Array>
Return messages in a Spark Room.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
max | Integer | Number of records to return |
Example
spark.messagesGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
.then(function(messages) {
// process messages as array
messages.forEach(function(message) {
console.log(message.text);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.messageGet(messageId) ⇒ Promise.<Message>
Return details of Spark Message by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
messageId | String | Spark Message ID |
Example
spark.messageGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
.then(function(message) {
console.log(message.text);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.messageSendPerson(email, message) ⇒ Promise.<Message>
Sends 1:1 Spark message to a person.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
String | Email address of Spark User | |
message | Object | Message Object |
Example
spark.messageSendPerson('aperson@company.com', {
text: 'Hello!',
files: ['http://company.com/myfile.doc']
})
.then(function(message) {
console.log('Message sent: %s', message.txt) ;
})
.catch(function(err){
console.log(err);
});
spark.messageSendRoom(roomId, message) ⇒ Promise.<Message>
Sends Spark message to a room.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
message | Object | Message Object |
Example
spark.messageSendRoom('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', {
text: 'Hello!',
files: ['http://company.com/myfile.doc']
})
.then(function(message) {
console.log('Message sent: %s', message.txt);
})
.catch(function(err){
console.log(err);
});
spark.messageStreamRoom(roomId, message) ⇒ Promise.<Message>
Streams Spark message to a room.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
message | Object | Message Object |
Example
var roomId = 'Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u';
var text = 'Hello';
var filename = 'test.png';
var stream = fs.createReadStream(filename);
var message = { 'text': text, 'filename': filename, 'stream': stream };
spark.messageStreamRoom(roomId, message)
.then(function(message) {
console.log('Message sent: %s', message.txt);
})
.catch(function(err){
console.log(err);
});
spark.upload(roomId, filepath) ⇒ Promise.<Message>
Upload a file by path to Spark Room
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
filepath | String | path to file |
Example
var roomId = 'Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u';
spark.upload(roomId, '/some/local/file.png');
spark.messageRemove(messageId) ⇒ Promise
Remove Spark Message by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
messageId | String | Spark Message ID |
Example
spark.messageRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function() {
console.log('Message removed.');
})
.catch(function(err){
console.log(err);
});
spark.contentGet(id) ⇒ Promise.<File>
Return details of Spark File by Content ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
id | String | Spark Content ID |
Example
spark.contentGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(file) {
console.log('File name: %s', file.name);
})
.catch(function(err){
console.log(err);
});
spark.contentByUrl(url) ⇒ Promise.<File>
Return details of Spark File by Spark Content URL.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
url | String | Spark Content URL |
Example
spark.contentByUrl('http://api.ciscospark.com/v1/contents/Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(file) {
console.log('File name: %s', file.name);
})
.catch(function(err){
console.log(err);
});
spark.teamsGet(max) ⇒ Promise.<Array>
Return all Spark Teams registered to account.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
max | Integer | Number of records to return |
Example
spark.teamsGet(10)
.then(function(teams) {
// process teams as array
teams.forEach(function(team) {
console.log(team.name);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamGet(teamId) ⇒ Promise.<Team>
Return details of Spark Team by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | Spark Team ID |
Example
spark.teamGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(team) {
console.log(team.name);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamAdd(name) ⇒ Promise.<Team>
Add new Spark Team.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
name | String | Name for new Team |
Example
spark.teamAdd('myteam')
.then(function(team) {
console.log(team.name);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamRoomAdd(teamId, title) ⇒ Promise.<Room>
Add new Spark Team Room.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | Spark Team ID |
title | String | Title for new Room |
Example
spark.teamRoomAdd('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'myroom')
.then(function(room) {
console.log(room.title);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamRename(teamId, name) ⇒ Promise.<Team>
Rename a Spark Team.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | Spark Team ID |
name | String | Name for new Team |
Example
spark.teamRename('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'myteam2')
.then(function(team) {
console.log(team.name);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamRemove(teamId) ⇒ Promise
Remove Spark Team by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | Spark Team ID |
Example
spark.teamRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function() {
console.log('Team removed.');
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamMembershipsGet(teamId, max) ⇒ Promise.<Array>
Return all Spark Team Memberships for a specific Team.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | Spark Team ID |
max | Integer | Number of records to return |
Example
spark.teamMembershipsGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
.then(function(memberships) {
// process memberships as array
memberships.forEach(function(membership) {
console.log(membership.personEmail);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.teamMembershipGet(membershipId) ⇒ Promise.<TeamMembership>
Return Spark Team Membership by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.membershipGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(membership) {
console.log(membership.personEmail);
})
.catch(function(err){
console.log(err);
});
spark.teamMembershipAdd(teamId, email, moderator) ⇒ Promise.<TeamMembership>
Add new Spark Team Membership.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
teamId | String | Spark Team ID |
String | Email address of person to add | |
moderator | Boolean | Boolean value to add as moderator |
Example
spark.teamMembershipAdd('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'aperson@company.com')
.then(function(membership) {
console.log(membership.id);
})
.catch(function(err){
console.log(err);
});
spark.teamMembershipSetModerator(membershipId) ⇒ Promise.<TeamMembership>
Set a Team Membership as moderator.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.teamMembershipSetModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(membership) {
console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
})
.catch(function(err){
console.log(err);
});
spark.teamMembershipClearModerator(membershipId) ⇒ Promise.<TeamMembership>
Remove a Team Membership as moderator.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.teamMembershipClearModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(membership) {
console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
})
.catch(function(err){
console.log(err);
});
spark.teamMembershipRemove(membershipId) ⇒ Promise
Remove Spark Team Membership by ID..
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.teamMembershipRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function() {
console.log('Membership removed');
})
.catch(function(err){
console.log(err);
});
spark.membershipsGet(max) ⇒ Promise.<Array>
Return all Spark Memberships registered to account..
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
max | Integer | Number of records to return |
Example
spark.membershipsGet(100)
.then(function(memberships) {
// process memberships as array
memberships.forEach(function(membership) {
console.log(membership.personEmail);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.membershipsByRoom(roomId, max) ⇒ Promise.<Array>
Return all Spark Memberships in a Spark Room..
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
max | Integer | Number of records to return |
Example
spark.membershipsByRoom('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
.then(function(memberships) {
// process memberships as array
memberships.forEach(function(membership) {
console.log(membership.personEmail);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.membershipGet(membershipId) ⇒ Promise.<Membership>
Return Spark Membership by ID..
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.membershipGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(membership) {
console.log(membership.personEmail);
})
.catch(function(err){
console.log(err);
});
spark.membershipByRoomByEmail(roomId, personEmail) ⇒ Promise.<Membership>
Return Spark Membership by Room and Email..
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Membership ID |
personEmail | String | Email of Person |
Example
spark.membershipByRoomByEmail('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'aperson@company.com')
.then(function(membership) {
console.log(membership.id);
})
.catch(function(err){
console.log(err);
});
spark.membershipAdd(roomId, email, moderator) ⇒ Promise.<Membership>
Add new Spark Membership..
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
roomId | String | Spark Room ID |
String | Email address of person to add | |
moderator | Boolean | Boolean value to add as moderator |
Example
spark.membershipAdd('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'aperson@company.com')
.then(function(membership) {
console.log(membership.id);
})
.catch(function(err){
console.log(err);
});
spark.membershipSetModerator(membershipId) ⇒ Promise.<Membership>
Set a Membership as moderator.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.membershipSetModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(membership) {
console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
})
.catch(function(err){
console.log(err);
});
spark.membershipClearModerator(membershipId) ⇒ Promise.<Membership>
Remove a Membership as moderator.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.membershipClearModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(membership) {
console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
})
.catch(function(err){
console.log(err);
});
spark.membershipRemove(membershipId) ⇒ Promise
Remove Spark Membership by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
membershipId | String | Spark Membership ID |
Example
spark.membershipRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function() {
console.log('Membership removed');
})
.catch(function(err){
console.log(err);
});
spark.webhooksGet(max) ⇒ Promise.<Array>
Return all Spark Webhooks registered to account.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
max | Integer | Number of records to return |
Example
spark.webhooksGet(100)
.then(function(webhooks) {
// process webhooks as array
webhooks.forEach(function(webhook) {
console.log(webhook.name);
});
})
.catch(function(err) {
// process error
console.log(err);
});
spark.webhookGet(webhookId) ⇒ Promise.<Webhook>
Return details of Spark Webhook by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
webhookId | String | Spark Webhook ID |
Example
spark.webhookGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(webhook) {
console.log(webhook.name);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.webhookAdd(resource, event, name, filter) ⇒ Promise.<Webhook>
Add new Spark Webhook.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
resource | String | Resource for webhook |
event | String | Event for webhook |
name | String | Name assigned to webhook to add |
filter | String | filter |
Example
spark.webhookAdd('messages', 'created', 'mywebhook', 'Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function(webhook) {
console.log(webhook.name);
})
.catch(function(err) {
// process error
console.log(err);
});
spark.webhookRemove(webhookId) ⇒ Promise
Remove Spark Webhook by ID.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
webhookId | String | Spark Webhook ID. |
Example
spark.webhookRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
.then(function() {
console.log('Webhook removed');
})
.catch(function(err){
console.log(err);
});
spark.webhookAuth(signature, payload) ⇒ Boolen
Authenticate X-Spark-Signature HMAC-SHA1 Hash.
Kind: instance method of Spark
Param | Type | Description |
---|---|---|
signature | String | Value of "X-Spark-Signature" from header |
payload | String | Object | This can either be the json object or a string representation of the webhook's body json payload |
Example
var sig = req.headers['x-spark-signature'];
if(spark.webhookAuth(sig, req.body)) {
// webhook is valid
} else {
// webhook is invalid
}
Room : object
Room Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Room ID |
title | string | Room Title |
type | string | Room Type |
isLocked | boolean | Room Moderated/Locked |
teamId | string | Team ID |
lastActivity | date | Last Activity in Room |
created | date | Room Created |
Person : object
Person Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Person ID |
emails | array | Emails |
displayName | string | Display Name |
avatar | string | Avatar URL |
created | date | Date created |
string | ||
username | string | Username |
domain | string | Domain name |
Message : object
Message Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Message ID |
personId | string | Person ID |
personEmail | string | Person Email |
roomId | string | Room ID |
text | string | Message text |
files | array | Array of File objects |
created | date | Date Message created |
File : object
File Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Spark API Content ID |
name | string | File name |
ext | string | File extension |
type | string | Header content-type for file |
binary | buffer | File contents as binary |
base64 | string | File contents as base64 encoded string |
Team : object
Team Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Message ID |
name | string | Team name |
created | date | Date Team created |
TeamMembership : object
Team Membership Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Membership ID |
teamId | string | Team ID |
personId | string | Person ID |
personEmail | string | Person Email |
isModerator | boolean | Membership is a moderator |
created | date | Date Membership created |
Membership : object
Membership Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Membership ID |
personId | string | Person ID |
personEmail | string | Person Email |
isModerator | boolean | Membership is a moderator |
isMonitor | boolean | Membership is a monitor |
created | date | Date Membership created |
Webhook : object
Webhook Object
Kind: global namespace
Properties
Name | Type | Description |
---|---|---|
id | string | Webhook ID |
name | string | Webhook name |
targetUrl | string | Webhook target URL |
resource | boolean | Webhook resource |
event | boolean | Webhook event |
filter | boolean | Webhook filter |
created | date | Date Webhook created |
Validator : object
Spark Validation functions.
Kind: global namespace
- Validator : object
- .isEmail(email) ⇒ Boolean
- .isUrl(url) ⇒ Boolean
- .isFilePath(path) ⇒ Boolean
- .isRoom(object) ⇒ Boolean
- .isPerson(object) ⇒ Boolean
- .isMessage(object) ⇒ Boolean
- .isMembership(object) ⇒ Boolean
- .isWebhook(object) ⇒ Boolean
- .isTeam(object) ⇒ Boolean
- .isRooms(rooms) ⇒ Boolean
- .isPeople(persons) ⇒ Boolean
- .isMessages(messages) ⇒ Boolean
- .isMemberships(memberships) ⇒ Boolean
- .isWebhooks(webhooks) ⇒ Boolean
- .isTeams(teams) ⇒ Boolean
Validator.isEmail(email) ⇒ Boolean
Validate String is Email.
Kind: static method of Validator
Param | Type |
---|---|
String |
Validator.isUrl(url) ⇒ Boolean
Validate String is URL.
Kind: static method of Validator
Param | Type |
---|---|
url | String |
Validator.isFilePath(path) ⇒ Boolean
Validate String is File path.
Kind: static method of Validator
Param | Type |
---|---|
path | String |
Validator.isRoom(object) ⇒ Boolean
Validate Spark Room Object.
Kind: static method of Validator
Param | Type |
---|---|
object | Room |
Validator.isPerson(object) ⇒ Boolean
Validate Spark Person Object.
Kind: static method of Validator
Param | Type |
---|---|
object | Room |
Validator.isMessage(object) ⇒ Boolean
Validate Spark Message Object.
Kind: static method of Validator
Param | Type |
---|---|
object | Message |
Validator.isMembership(object) ⇒ Boolean
Validate Spark Membership Object.
Kind: static method of Validator
Param | Type |
---|---|
object | Membership |
Validator.isWebhook(object) ⇒ Boolean
Validate Spark Webhook Object.
Kind: static method of Validator
Param | Type |
---|---|
object | Webhook |
Validator.isTeam(object) ⇒ Boolean
Validate Spark Team Object.
Kind: static method of Validator
Param | Type |
---|---|
object | Team |
Validator.isRooms(rooms) ⇒ Boolean
Validate Spark Room Objects in Array.
Kind: static method of Validator
Param | Type |
---|---|
rooms | Array |
Validator.isPeople(persons) ⇒ Boolean
Validate Spark Person Objects in Array.
Kind: static method of Validator
Param | Type |
---|---|
persons | Array |
Validator.isMessages(messages) ⇒ Boolean
Validate Spark Message Objects in Array.
Kind: static method of Validator
Param | Type |
---|---|
messages | Array |
Validator.isMemberships(memberships) ⇒ Boolean
Validate Spark Membership Objects in Array.
Kind: static method of Validator
Param | Type |
---|---|
memberships | Array |
Validator.isWebhooks(webhooks) ⇒ Boolean
Validate Spark Webhook Objects in Array.
Kind: static method of Validator
Param | Type |
---|---|
webhooks | Array |
Validator.isTeams(teams) ⇒ Boolean
Validate Spark Team Objects in Array.
Kind: static method of Validator
Param | Type |
---|---|
teams | Array |
"drop"
Spark Queue Drop Event.
Kind: event emitted
Properties
Name | Type | Description |
---|---|---|
request | options | API Request |
id | string | Spark UUID |
"request"
Spark request event.
Kind: event emitted
Properties
Name | Type | Description |
---|---|---|
request | options | API Request |
id | string | Spark UUID |
"reponse"
Spark response event.
Kind: event emitted
Properties
Name | Type | Description |
---|---|---|
response | options | Response |
id | string | Spark UUID |
"retry"
Spark retry event.
Kind: event emitted
Properties
Name | Type | Description |
---|---|---|
request | options | API Request |
id | string | Spark UUID |
License
The MIT License (MIT)
Copyright (c) 2016-2017
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
5 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago