Slack の Bot を Google Apps Script で書く

Posted on
Slack Google Apps Script GAS

Slack の Bot を Google Apps Script(GAS) で書く方法をさくっとまとめます。 ググると誰かが作ったライブラリを使う方法ばかりヒットしたのですが、今回はライブラリなしでやります。別に難しくないので。

どんなアプリを作るか

特定のチャンネルで、特定の発言をすると、”Hello, world!” と返す Bot にします。

下準備

Slack でアプリを作る

まずアプリを作ります。

https://api.slack.com/apps

ここで “Create New App” ボタンを押し、名前とワークスペースを選んで作成。

https://api.slack.com/apps

に戻るとアプリができていると思います。 アプリ名をクリックして設定へ進みます。

アプリの設定

必要なのは Incoming Webhooks です。

アプリ設定画面の

Basic Information > Add features and functionality > Incoming Webhooks

をクリックして有効にします。

Incoming Webhooks

一番下の “Add New Webhook to Workspace” から、Webhook を追加します。 投稿先を選んで許可すると追加されます。

このとき流れでワークスペースにアプリが追加されると思います。

追加された Webhook URL は後で使うのでメモします。

Outgoing Webhooks

これは Slack の Appディレクトリから追加します。 使いたいワークスペースで Appディレクトリを開き、検索窓に “outgoing” あたりまで打つと “発信 Webフック” というアプリがヒットするので、それを選びます。

アプリを追加して、”設定を追加” ボタンを押します。 同意文書をよく読んで “発信 Webフック インテグレーションの追加” をクリック。

Outgoing Webhooks

ページ下部の “インテグレーションの設定” から、”チャンネル” “引き金となる言葉” など、必要な項目を設定しておきます。

ここでは以下の設定にします。

  • チャンネル:#experiment
  • 引き金となる言葉:batu

あと “トークン” は後で使うのでメモします。

“設定を保存する” をクリック。

GAS で Bot を作る

プロジェクト作成

Googleドライブに移動します。

新規 > その他 > Google Apps Script

を選択します。無かったら “アプリを追加” から “Google Apps Script” を追加します。

プロジェクトができました。

プロパティ追加

ファイル名を設定したら、

ファイル > プロジェクトのプロパティ > スクリプトのプロパティ

にプロパティを追加します。

  • プロパティ:OUTGOING_TOKEN
    • 値:Outgoing Webhooks の “インテグレーションの設定” ページにあったトークン
  • プロパティ:INCOMING_URL
    • 値:Incoming Webhooks の設定ページに書いてある Webhook URL

コード

こんな感じです。とっても簡単なので見れば大体わかると思います。

公開

ではリクエストを受け取れるように、このコードを公開します。

公開 > ウェブ アプリケーションとして導入

ウェブ アプリケーションとして導入

“アプリケーションにアクセスできるユーザー” は “全員(匿名ユーザーを含む)” にします。

導入ボタンをクリック。 表示された “現在のウェブ アプリケーションのURL” をメモしておきます。

注意点

一度公開した後にGAS のコードを書き換えた後は、再度

公開 > ウェブ アプリケーションとして導入

に進み、”プロジェクト バージョン” を “新規作成” にして更新しないと反映されません。

ウェブ アプリケーションとして導入

アプリに URL を設定する

Outgoing Webhooks の設定画面に戻ります。 “インテグレーションの設定” で、”URL” に、先ほど発行された “現在のウェブ アプリケーションのURL” を記入して “設定を保存する” をクリック。

完成

これで完成しました。 Outgoing Webhook を仕込んだチャンネルで、引き金となる言葉が冒頭に来るように発言してみます。

動作確認

無事に動きました。