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でデータに入れ込む。
ここまでの流れを作りたい。