@sagi.io/workers-slack
allows
you to use Slack's Web API within Cloudflare Workers.
⭐ We use it at OpenSay to access Slack's REST API through Cloudflare Workers.
Here is a blog post that explains why I built it.
$ npm i @sagi.io/workers-slack
If you use Cloudflare's Wrangler you must set the node_compat
flag in your wrangler.toml
- the reason for this is that this library is built both for Cloudflare Workers and Node.js (for which we need globals
).
Initialize SlackREST
:
// Without token:
const SlackREST = require('@sagi.io/workers-slack')
const SlackAPI = new SlackREST()
// With token:
const botAccessToken = process.env.SLACK_BOT_ACCESS_TOKEN;
const SlackREST = require('@sagi.io/workers-slack')
const SlackAPI = new SlackREST({ botAccessToken })
You can then use supported Slack methods.
For instance, here's how to use the chat.postMessage
method:
// SlackREST was initialized with a token
const formData = { channel: 'general', text: 'hello world'}
// SlackREST wasn't initialized with a token
const botAccessToken = process.env.SLACK_BOT_ACCESS_TOKEN;
const formData = { token: botAcccessToken, channel: 'general', text: 'hello world' }
const result = await SlackREST.chat.postMessage(formData)
More information here.
The SlackREST.helpers.verifyRequestSignature
method returns true
when a signature from Slack is verified. Otherwise it throws an error.
const SlackREST = require('@sagi.io/workers-slack')
const SlackAPI = new SlackREST()
const signingSecret = process.env.SLACK_SIGNING_SECRET
const isVerifiedRequest = await SlackAPI.helpers.verifyRequestSignature(request, signingSecret)