0.0.53-prrtest • Published 1 year ago

@cfanoulis/workers-slack v0.0.53-prrtest

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

workers-slack

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

CircleCI MIT License version

Installation

$ npm i @sagi.io/workers-slack

Cloudflare Workers Usage

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)

Verifying requests from Slack

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)