SlackBOTを作って、Slackを盛り上げよう

2020年4月25日

こんにちは、にゅ〜ぶるです。

少し前(いや、かなり前か…笑)に、こんなツイートをしました。

そうです!「にゅ〜ぶる会」に秘書が出来ました!!!

秘書と言っても、人ではなくて、SlackBOTなんですけどね…(人だと思った方すみません…💦)
今回は、SlackBOTの作り方を簡単にまとめて、皆さんのSlackにも適用されたら、いろんなところのSlackが盛り上がると嬉しいな!と思って記事にしています。

SlackBOTとは…?

一言で言うと、Slackで誰かが投稿した内容に自動で応答するアプリです。

作るのは難しいと思うかも知れませんが、実は簡単です。
必要なスキルは、

  • スプレッドシート
  • GAS(JavaScript)
  • Slack
  • ググる力

です!

では、順を追って説明していきますね。

Slackのアプリ設定にある「カスタムインテグレーション」に「Incoming Webhook」を追加します。

「インテグレーションの設定」は自由で良いです。
GAS側から、自由に変更出来るためです。ただし、実際に投稿されたアイコンをクリックした際などの情報は、ここで設定した情報が表示されるので、必要あれば変更ください。

ここで必要なのは、「WebhookURL」です。
このURLに情報をセットして呼び出すと、Slackに投稿されます。

GASでBOTの処理を作成します。

まずは、Slackへ投稿する処理を作りましょう。
簡単に言うと、投稿したい内容を用意して、UrlFetchApp.fetchを呼ぶだけです。

次は、Slackから受け取る側ですね。

受け取る関数は、doPost(e)です。Slackからこれが呼ばれるので、ここは固定にしてください。

途中に出て来ました「searchMsg」BOTの反応を決める関数です。
仕組みは、スプレッドシートの情報を抽出するようにしました。

途中に出てくる共通関数を、置いておきますね。

Slackのアプリ設定にある「カスタムインテグレーション」に「Outgoing Webhook」を追加します。

今度は、Slackの投稿情報をGASに連携するための設定です。
「インテグレーションの設定」は以下の通りです。

引き金となる言葉

このワードで始まる投稿に反応するようになります。BOTの名称にしておくと良いでしょう。

URL

GASの公開URLをここに設定してください。

トークン

どのSlackから呼ばれたかのキー情報になりますので、
このキーからのみ処理を動かすように、処理の先頭に追加しましょう。
※前術しましたdoPost(e)の先頭でチェックします。

完成!?

実際に動かすと、こんな感じになります。

あとは、スプレッドシートの内容を充実化させていけば、いろいろなメッセージに自動応答していく事が可能になります。

まだまだ改善の余地があるプロジェクトになっていますが、最初のスタートとしてはこれぐらいで十分かなと思います。ソースコードや動きに疑問・質問等ありましたら、コメント等でご連絡頂けると助かります🙇‍♂️