' P '

whatever I will forget

node.jsでSlack Appを作って遊ぶ

はじめに. Slack側の設定

api.slack.com

  1. 上記からCreate Appする。from scratchを選択でOK.
  2. App Nameや使用したいWorkspaceを入力.
  3. Socket ModeをONにする(Internal Workspaceだけで使用する場合はね).
  4. App-Level Tokensを作成する.
  5. イベントの設定. Event Subscriptionをクリックして、有効化.
  6. Subscribe to bot eventsAdd Bot User Eventmessage.channelを選択. これで、チャネルに投稿されたメッセージをイベントとして取得可能に.
  7. OAuth & Permissionsを選択. Bot Token SpaceのAdd an OAuth Scopeをクリックして、chat:writeを選択。これでボットがメッセージを投稿可能に.
  8. Install Appを選択. 使用したいWorkspaceを選択.

Node.js側

  1. .envを作成する.
$ touch .env

2. 上記にSLACK_APP_TOKENSLACK_BOT_TOKENの情報を記入する.
2.1. SLACK_APP_TOKEN.
Basic InformationApp-Level TokensToken Nameにある値.
2.2. SLACK_BOT_TOKEN.
Install Appにある値.

SLACK_APP_TOKEN="xapp-hogehoge"
SLACK_BOT_TOKEN="xoxb-hogehoge"

3. boltdotenvをyarnする.
3.1. Bolt: Slack のボットを開発するための Node.js のライブラリ.
3.2. dotenv: .env ファイルから環境変数を設定し、それを読み込むためのライブラリ.

$ yarn add @slack/bolt dotenv

4. Javascript作成.

'use strict';
const bolt = require('@slack/bolt');
const dotenv = require ('dotenv');
dotenv.config();

const app = new bolt.App({
  token: process.env.SLACK_BOT_TOKEN,
  appToken: process.env.SLACK_APP_TOKEN,
  socketMode: true,
  logLevel: 'debug'
});

app.message(/hello/i, ({message, say}) => {
  say(`what's up? <@${message.user}>`);
});

app.start();

詳しくは、こちら.

slack.dev