見出し画像

SlackのBoltを使ってボット作成

現在、社内の連絡ツールとしてSlackを使用しています。
せっかくなのでSlackで自動化できそうなことを考えてます。
今回はその導入に関しての部分です。
手軽に扱えるBoltフレームワークを使っています。

Slackでチャットボットを作るためにはSlackアプリを作る必要がある。

Slackに連動した機能=Slackアプリ
という扱いになっているとのことで。
自動応答などの機能はSlackアプリを作成することになっていました。
アプリの作成や前提の設定は以下を参考にしました。

実際に自動応答をするのはボットですが、
その大本がSlackアプリという仕組み。

messageのイベントに反応するコードの記述が少し戸惑った

サンプルコードが

app.event('app_mention', async ({ event, say }) => {
  say("Hi " + event.user);
});

だったので、'app_mention' を 'message' に変更するだけかと思いや、
ひたすらにエラーを吐かれ続けてしまう始末。
色々探したらmessageはmessageのメソッドで反応するということだった。
海外のフォーラムにも同様の記述があった。

なので、

app.message(RegExp('(.*?)'), async ({ message, say, event, payload }) => {
   say("返答テスト:入力メッセージ→" + message.text + " 入力者Username→" + event.user);
});

と、変更した。app.message(text , fn)
という感じ。
これでメッセージイベントを認識できる。
但しこれはメッセージすべてに反応するので反応させたいワードや、
返答するチャンネルを指定するときは別途記述が必要。

この後やりたいこと

別途APIを叩いて発言させるようにしたいので、
DeepLのAPIやChatGPTのAPIを叩いて、レスポンスを発言させるようにしたい。
GoogleAppsScriptのAPIも叩けるようにすれば、
かなり業務の自動化ができるかと思ってる。
理想としては、

”、”とか改行とか、人によって違う書かれ方をする内容を、
ChatGPTで整形させて、
GoogleAppsScriptでデータに入れ込む。

ここまでの流れを作りたい。

この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?