Slack の Slash Commands を Google Apps Script で書く

Posted on
Slack Google Apps Script GAS

以前、Slack の Bot を Google Apps Script で書く という記事を書いたのですが、今度は Slash Commands を作ります。

※作ったのは数か月前なので、思い出しながら書いています。足りないところは調べて補完してください。

どんな Slash Commands を作るか

下記のようなコマンドを考えます。

/.pancake <to> <how many?> <message>

これはワークスペース内の誰かにパンケーキを送るコマンドです。

このコマンドを実行すると、特定のチャンネルに次のような文言が返ってきます。

<to> you received <how many?>:pancakes: from <コマンド実行者>
<message>

下準備

まずアプリを作ります。

Slack の Bot を Google Apps Script で書く の「下準備」を見て、Incoming Webhooksまで作ってください。

今回はOutgoing Webhooks は不要です。

GAS で Slash Commands を作る

Slash Commands の設定より先にソースを書きます。

プロジェクト作成

Slack の Bot を Google Apps Script で書く の「プロジェクト作成」を見て、プロジェクトを作ってください。

プロパティ追加

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

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

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

  • プロパティ:TOKEN
    • 値:Basic Information > App Credentials に書いてある Verification Token
  • プロパティ:INCOMING_URL
    • 値:Incoming Webhooks の設定ページに書いてある Webhook URL

コード

こんな感じです。

公開

Slack の Bot を Google Apps Script で書く の「公開」を見て、コードを公開してください。

「現在のウェブ アプリケーションのURL」をメモしてください。

Slash Commands の設定

次に Slash Commands の設定を行います。

Slack のアプリ設定画面に戻り、

Basic Information > Add features and functionality > Slash Commands

をクリックし、Create New Command します。

Slash Commands の設定

Request URL というところに、先ほどメモした「現在のウェブ アプリケーションのURL」を入れます。

あと、Escape channels, users, and links sent to your app というところにチェックを入れておくと、先ほどのコードによってメンションを適切に返すことができます。

設定が出来たら保存しましょう。

完成

完成しました。

どこのチャンネルでもいいのでコマンドを送信してみます。

. から始まるコマンドはデフォルトには無いので、.を打った時点でサジェストされていますね。

サジェスト

相手がいないので自分に向かって送信します。

コマンド全文

送信すると、そのチャンネルにレスポンスが返ってきます。

このレスポンスは自分にしか見えません。

レスポンス

一方、Incoming Webhooks を仕込んだチャンネルからメンションが来ているはずです。

そちらには全員に見える内容が表示されています。

コマンドの結果

自分に送ったので自分宛のメンションが2つ入っていますが、別の人に送れば、冒頭のメンションは別の人になるはずです。

参考URL

【Slack】Custom slash commandsを使う