slack-bot-template

https://github.com/take-cantik/slack-bot-template

TypeScript

Node.js

Firebase

slack botのテンプレート

みきどーざん

推しアイデア

テンプレです

作った背景

みんなに簡単に作業開始してもらうため

推し技術

bolt

プロジェクト詳細

slack bot template

使用技術

  • Nodejs
  • TypeScript
  • Firebase Functions
  • (express)
  • (@slack/bolt)

動作

このbotは

  • 「/test」コマンドで"test"を返す
  • "ahiahi"というメッセージに反応して"Hello"を返す

を行うことが可能です

スクリーンショット 2022-05-22 21 22 03 スクリーンショット 2022-05-22 21 23 12

Usage

Templateの導入

このリポジトリの「Use this template」を押して自分のリポジトリを作成

スクリーンショット 2022-05-22 21 12 23

Slack bot の作成

アプリの作成

以下のリンクから「Create New App」を押してSlack botを作成 任意のアプリ名、ワークスペースを入力

https://api.slack.com/

スクリーンショット 2022-05-22 21 19 09

Scopeの設定

サイドバーの「OAuth & Permissions」の「Scopes」からbotの権限を設定します 今回は追加したものは以下の通りです (テストしながら作ったので、これ必要なくね?みたいなのがありましたらissueに追加しておいてください🙏)

  • channel:history
  • channel:read
  • chat:write
  • chat:write.customize
  • chat:write.public
  • commands
  • groups:history
  • im:history
  • mpim:history
スクリーンショット 2022-05-22 21 32 04

インストール

「OAuth & Permissions」の上に戻り「Install to Workspace」を選択

スクリーンショット 2022-05-22 21 38 32

環境変数の設定

botを作成したらtokenをenvファイルに記述します

「Basic Information」の「App Credentials」から「Signing Secret」を

スクリーンショット 2022-05-23 13 44 48

「OAuth & Permissions」から「Bot User OAuth Token」を

スクリーンショット 2022-05-23 13 45 15

をそれぞれ functions/.env.example を参考に functions/.env を作成し追加します。

SLACK_SIGNING_SECRET=[Signing Secret] SLACK_ACCESS_TOKEN=[Bot User OAuth Token]

Firebaseの設定

以下のリンクから新しいプロジェクトを追加します。 プロジェクト作成の手順に従い、初期設定します。

https://console.firebase.google.com/

サイドメニューの「Functions」へ行き、Functionsを使うためプランを「Blaze 従量制」に変更します。

スクリーンショット 2022-05-23 13 58 58 スクリーンショット 2022-05-23 13 59 39

その後、「はじめる」Functionsの設定をします ロケーションは「asia-northeast1」にします

初期設定を終えたら、FirebaseのプロジェクトIDをコードに追加します。

スクリーンショット 2022-05-23 14 07 09

.firebaserc に記述します。

{ "projects": { "default": "[プロジェクトID]" } }

デプロイ

ここまで終わったらいよいよデプロイです。 firebase-toolsが入っていいない場合には追加し、ログインしてください

$ npm i -g firebase-tools or $ yarn global add firebase-tools
$ firebase login

ここまで完了したらデプロイをします。 以下のコマンドを入力してください

$ cd functions/ $ firebase deploy --only functions

少し時間がかかりますが、これで完了です。

Slack bot にコマンドを追加

以下のリンクから先ほど作成したアプリのページへいき、コマンドを追加します

https://api.slack.com/

サイドメニューの「Slash Commands」から「Create New Command」を選択します

スクリーンショット 2022-05-23 14 30 02

Commandに"/test"、 Request URLに、先ほどデプロイしたFunctionsのurlの末尾に"/events"を追加したものを追加します

例) https://asia-northeast1-[your-project-id].cloudfunctions.net/slackBot/events

Short Description、Usage Hintを追加して「Save」を押します。

スクリーンショット 2022-05-23 14 37 48

これで完了です。

動作確認

/test コマンド、"ahiahi"を入力すると正しく動作されていることを確認してください。

みきどーざん

@take_cantik