Coder Social home page Coder Social logo

nodejslack's Introduction

Nodejslack

Start using Slack's Web API in an easy way through this Node.js library.

Also, this library is built using the Promises pattern, powered by Bluebird .

Installation

npm install nodejslack

Methods

Bots

  • getBotInfo(id) (return: promise) - Gets information about a Bot

Channels

  • archiveChannel(id) (return: promise) - Archives a channel,
  • createChannel(name) (return: promise) - Creates a channel,
  • getChannelHistory(data) (return: promise) - Gets the history of a channel,
  • getChannelInfo(id) (return: promise) - Gets info of a channel,
  • inviteUserToChannel(channelId, userId) (return: promise) - Invites a user to a channel,
  • joinChannel(channelName) (return: promise) - Join(user) to a channel,
  • kickUserFromChannel(channelId, userId) (return: promise) - Kicks a user from a channel,
  • leaveChannelfunction(channelId) (return: promise) - Leaves a channel,
  • getChannels() (return: promise) - Get all channels,
  • markChannel(channelId, ts) (return: promise) - Moves the read cursor in a channel,
  • renameChannel(channelId, name) (return: promise) - Renames a channel,
  • setPurposeChannel(channelId, purpose) (return: promise) - Sets a purpose of a channel,
  • setTopicChannel(channelId, topic) (return: promise) - Sets a topic of a channel,
  • unarchiveChannel(channelId) (return: promise) - Unarchives a channel

Chats

  • meMessage(channelId, text) (return: promise) - Sends a me message to a channel from the calling user,
  • deleteMessage(ts, channelId, asUser) (return: promise) - Deletes a message,
  • postMessage(data) (return: promise) - Posts a message,
  • updateMessage(data) (return: promise) - Updates a message

dnd(Do not Disturb)

  • endDnd() (return: promise) - Ends dnd(Do not disturb) mode,
  • endSnooze() (return: promise) - Ends Snooze mode,
  • dndInfo(user) (return: promise) - Provides information about a user's current Do Not Disturb settings,
  • setSnooze(minutes) (return: promise) - Sets Snooze mode,
  • dndTeamInfo(users) (return: promise) - Provides information about a Team's Do Not Disturb settings

Emoji

  • getEmojiList() (return: promise) - Gets Emoji List

Files

  • fileUpload(params) (return: promise) - uploads a file,
  • getFilesList(params) (return: promise) - returns a list of uploaded files,
  • getFileInfo(id, count, page) (return: promise) - returns informations about the specified file
  • deleteFile(id) (return: promise) - Delete specified file
  • fileRevokePublicURL(id) (return: promise) - Disables public URL the specified file
  • fileEnablePublicURL(id) (return: promise) - Enables public URL the specified file

Files.comment

  • fileAddComment(id, comment) (return: promise) - Add a comment to a file,
  • fileEditComment(id, fileId, comment) (return: promise) - Edit an existing comment about a file
  • fileDeleteComment(id, fileId) (return: promise) - Delete a comment about a file

Users

  • deleteUserPhoto() (return: promise) - Deletes a photo from the user's profile,
  • getUserPresence(id) (return: promise) - Gets user's presence,
  • getUserIdentity() (return: promise) - Gets user's identity,
  • getUserInfo(id) (return: promise) - Gets user's info,
  • getUsersList() (return: promise) - Gets all users,
  • setUserActive() (return: promise) - Sets user's as active,
  • setUserPhoto(data) (return: promise) - Sets a photo to the user's profile,
  • setUserPresence(presence) (return: promise) - Sets user's presence(Either "auto" or "away")

Usage

slack.fileUpload(params)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);

var form = {
  file: fs.createReadStream('test.csv'), // Optional, via multipart/form-data. If omitting this parameter, you MUST submit content
  // content: 'Your text here', // Optional, File contents. If omitting this parameter, you must provide a `file` 
  filename: 'test.csv', // Required 
  fileType: 'post', // Optional, See more file types in https://api.slack.com/types/file#file_types
  title: 'Title of your file!', // Optional
  initial_comment: 'First comment about this file.', // Optional
  channels: 'general' //Optional, If you want to put more than one channel, separate using comma, example: 'general,random'
};

slack.fileUpload(form)
.then(function(response){

	// Slack sends a json with a boolean var ok. 
	// Error example : data = { ok: false, error: 'user_not_found' }
	// Error example : data = { ok: true, file: 'user_not_found' }
	if(!response || !response.ok){
		return Promise.reject(new Error('Something wrong happened during the upload.'));
	}
	console.log('Uploaded Successfully:',response);

	return Promise.resolve(response);
})
.catch(function(err){
	return err;
});

slack.getFilesList(params)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);

var form = {
  user: 'USER_ID', // Optional, User ID
  channel: 'CHANNEL_ID', // Optional, Channel ID
  ts_from: 342353452342, // Optional, Filter(Unix Timestamp) files created after this timestamp (inclusive).
  ts_to: 342353452342, // Optional, Filter(Unix Timestamp) files created before this timestamp (inclusive).
  types: 'zips,pdfs', // Optional, Filter files by type: all, spaces, snippets, images, gdocs, zips, pdfs.
  count: 20 // Optional, default: 100
  page: 2 // Optional, default: 1
};

slack.getFilesList(form)
.then(function(response){

	// Slack sends a json with a boolean var ok. 
	// Error example : data = { ok: false, error: 'user_not_found' }
	// Error example : data = { ok: true, file: 'user_not_found' }
	if(!response || !response.ok){
		return Promise.reject(new Error('Something wrong happened during the request.'));
	}
	console.log('List of files:',response);

	return Promise.resolve(response);
})
.catch(function(err){
	return err;
});

slack.getFileInfo(id, count, page)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);


var fileId = 'UH45344543'; // File ID
var count = 20; // Optional, Number of items to return per page.
var page = 2; // Optional, Page number of results to return.

slack.getFileInfo(fileId, count, page)
.then(function(response){

	// Slack sends a json with a boolean var ok. 
	// Error example : data = { ok: false, error: 'user_not_found' }
	// Error example : data = { ok: true, file: 'user_not_found' }
	if(!response || !response.ok){
		return Promise.reject(new Error('Something wrong happened during the request.'));
	}
	console.log('File Info:',response);

	return Promise.resolve(response);
})
.catch(function(err){
	return err;
});

slack.deleteFile(id)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);


var fileId = 'UH45344543'; // File ID

slack.deleteFile(fileId)
.then(function(response){

	// Slack sends a json with a boolean var ok. 
	// Error example : data = { ok: false, error: 'user_not_found' }
	// Error example : data = { ok: true, file: 'user_not_found' }
	if(!response || !response.ok){
		return Promise.reject(new Error('Something wrong happened during the request.'));
	}
	console.log('File successfully deleted:',response);

	return Promise.resolve(response);
})
.catch(function(err){
	return err;
});

slack.fileRevokePublicURL(id)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);


var fileId = 'UH45344543'; // File ID

slack.fileRevokePublicURL(fileId)
.then(function(response){

	// Slack sends a json with a boolean var ok. 
	// Error example : data = { ok: false, error: 'user_not_found' }
	// Error example : data = { ok: true, file: 'user_not_found' }
	if(!response || !response.ok){
		return Promise.reject(new Error('Something wrong happened during the request.'));
	}
	console.log('File URL successfully disabled:',response);

	return Promise.resolve(response);
})
.catch(function(err){
	return err;
});

slack.fileEnablePublicURL(id)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);


var fileId = 'UH45344543'; // File ID

slack.fileEnablePublicURL(fileId)
.then(function(response){

	// Slack sends a json with a boolean var ok. 
	// Error example : data = { ok: false, error: 'user_not_found' }
	// Error example : data = { ok: true, file: 'user_not_found' }
	if(!response || !response.ok){
		return Promise.reject(new Error('Something wrong happened during the request.'));
	}
	console.log('File URL successfully enabled:',response);

	return Promise.resolve(response);
})
.catch(function(err){
	return err;
});
  • fileAddComment(id, comment) (return: promise) - Add a comment to a file,
  • fileEditComment(id, fileId, comment) (return: promise) - Edit an existing comment about a file
  • fileDeleteComment(id, fileId) (return: promise) - Delete a comment about a file

slack.fileAddComment(id, comment) + slack.fileEditComment(id, fileId, comment) + slack.fileDeleteComment(id, fileId)

var Slack = require('nodejslack');
var fs = require('fs');
var SLACK_TOKEN = process.env.SLACK_TOKEN || 'YOUR_GENERATED_SLACK_TOKEN';

var slack = new Slack(SLACK_TOKEN);


var fileId = 'UH45344543'; // File ID

slack.fileAddComment(fileId, 'New Comment being added')
.then(function(answer){
	if (!answer.ok && answer.error) {
		return Promise.reject(new Error(answer.error));
	}
	console.log('Comment Added:',answer);
	
	return slack.fileEditComment(answer.comment.id, fileId, 'New Comment being edited');
})
.then(function(answer){
	if (!answer.ok && answer.error) {
		return Promise.reject(new Error(answer.error));
	}
	console.log('Comment Edited:',answer);
	
	return slack.fileDeleteComment(answer.comment.id, fileId);
})

.then(function(answer){
	if (!answer.ok && answer.error) {
		return Promise.reject(new Error(answer.error));
	}
	console.log('Comment Deleted:',answer);
	
	return Promise.resolve(answer);
})
.catch(function(err){
	console.log('Did not ADD/EDIT/DELETE File Comment:',err);
	return err;
});

nodejslack's People

Contributors

marcogbarcellos avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.