【GAS】Slackのコマンドを作成してGASを実行する

久しぶりにGASを触ったらウェブ上のエディタも新しくなっていたしちょっと色々忘れてたのでメモ。
Slackコマンド => GAS の仕組みの事始めメモ

Google Apps Script側

↑のコードではコマンドが入力されたときにSlack側からPostのパラメータで出力されるものをそのままSlackに返すコード。
eの内容サンプルは以下。見やすいように&の前に改行を入れてある。

スクリプト内でeの内容を取得する場合は

のように書くと取得できる

これらの情報をGAS側でこねこねして、SpreadSheetに入力したり別のシステムにつなげたりすれば
色々できるはず。

doPost(e) 関数でないとSlackからの情報を受け取れない_?そもそも実行できない感じ?
GASの仕様なのか doGet(e) 関数を用意しておくとGetアクセスのときは doGet 関数が実行される仕組みっぽい

よってSlackのコマンドから実行するときのテストはウェブアプリURLをブラウザのアドレスバーに直接入力しても上記のようなGASスクリプトだと”スクリプト関数が見つかりません: doGet”と表示されて実行できない。


しっかりスクリプトを保存してからデプロイを行う。
新しいデプロイを選択し、ダイアログの左上の歯車からウェブアプリを選択。

次のユーザーとして実行の部分を自分(メールアドレス)に設定する。
ウェブアプリケーションにアクセスしているユーザを選択するとアクセスできるユーザが全員に設定できない。

ここが地味に重要。
アクセスできるユーザを全員にしないとSlack apiからアクセスがあったときにdispatch_failedと表示されて動作しなかった。

Slack側

Slack側はSlack apiのページからアプリを作成して、Slash Commandsに新しいコマンドを作成する。
GASでデプロイしたときに表示されるウェブアプリURLを貼り付ける。

完了したらコマンドを実行する。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です