slack-sdk

Basic Slack Api SDK

Usage no npm install needed!

<script type="module">
  import slackSdk from 'https://cdn.skypack.dev/slack-sdk';
</script>

README

Slack SDK

Build Status Test Coverage Dependabot Status Dependencies NPM Downloads Semantic-Release Gardener

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

  1. Go to https://YOURWORKSPACE.slack.com/home in Chrome
  2. Right click → Inspect
  3. Select the network tab
  4. Reload the page
  5. Type in api in the search
  6. Click rtm.start and then headers
  7. Scroll down until you find the token. It starts with xoxs-
  8. Copy it!

Functions

self.message(message: string)

Send message to self.

self.shareFiles(files: array)

Share 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: array)

Share 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.