README
Slack SDK
Basic Slack Api SDK using User Session Token
Install
npm i --save slack-sdk
Usage
const slack = require('slack-sdk')('workspace-name', 'user-session-token', {/* options */});
slack.channel.message('channel-name', 'message');
Options
cacheTtl
Cache duration in seconds. Optional, defaults to 60
.
cacheMaxEntries
Maximum number of entries in cache at any given time. Optional, defaults to 100
.
Obtaining User Session Token
- Go to https://YOURWORKSPACE.slack.com/home in Chrome
- Right click → Inspect
- Select the network tab
- Reload the page
- Type in api in the search
- Click rtm.start and then headers
- Scroll down until you find the
token
. It starts withxoxs-
- Copy it!
Functions
self.message(message: string)
Send message
to self.
)
self.shareFiles(files: arrayShare files
to self.
channel.meta(channel: string)
Get meta information about channel channel
channel.message(channel: string, message: string)
Send message
to channel channel
.
channel.setTopic(channel: string, topic: string)
Set topic
of channel channel
channel.setPurpose(channel: string, purpose: string)
Set purpose
of channel channel
)
channel.shareFiles(channel: string, files: arrayShare files
to a channel channel
.
workspace.details(cache: boolean = true)
Obtain details for workspace. Should usually be cached as it is easy to run into rate limits.
files.upload(filepath: string, title: string = null, filename: string = null)
Upload file. Title and filename default to basename of filepath. Returns file id.
Internal functions
call(endpoint: string, params: object, cache: boolean = false)
Send request to slack endpoint endpoint
with parameters params
.
E.g. call("rtm.start", {}, true)
to obtain information about current user. Use cache if information was already obtained before.
Cache
Cache operates by matching the exact outgoing request signature.
Cached and non-cached requests operate separately. So making a non cached request does never alter the cache.