SlackとGoogleスプレッドシートをGAS連携する

SlackAPIは色々あるっぽいですが、Slackからチャットでコマンドを作ることは簡単に。あとはGAS側は公開アプリケーションとしてDoPostで来るのでそこで処理して返すという設計になります。

Slack側の設定

Slash Commandsを使えば基本OK。

https://qiita.com/akibin/items/d7bda60b038890d770b7 が参考になりました。

SlackAPI設定画面はやや分かりづらかったのですが、

Features→Slash Commands→Create New Command

とかでいけます。ちなみにSpackAPIといってますが、ここではSlack Appというものを登録して使う感じですね。WorkspaceはSlackのワークスペースでテスト用に作っても良さそうです。

GAS側の設定

GASでWebアプリケーションを作っているならあまり問題はないのですが、とはいえはまりそうなところはいくつか。

  • ウェブアプリケーションとして公開。Anyone,even anonymousにチェックをすること。(なぜか日本語化されてない)
  • GASスクリプト修正で公開する時は、VersionをNewにすること。これしないと反映されないですね。

それくらいです。

あとGoogleスプレッドシートにあるデータを取得するとか、返すとかはわりとシンプルなのでそこはGASの話でふんばれって感じになります。

他のメモ

GASのDoPostとかDoGetの違いは?

例えばGET通信しているならDoGetでは?とか思ったのですが、多分そのとおりっぽいです。では、Slack側ではどこで設定するかですが、

2016年と古めですが、こちらではMethod指定があったようです。GETとかPOSTとか。

それが執筆時点ではないので、DoPostオンリーなのかもしれないですね。これはペンディングとしておきます。

作ってみて思ったこと

Slackからコマンドを出せることで特定の処理をさせるのは、まあ処理によりけりなんですがSlackを使っている人なら面白い感じですよね。

一方で、GASでやると簡単なことならいいのですが、複雑なことだとすると、デバッグが手間になるのでスプレッドシートに出すとかですかね、そこらへんで面倒ですね。地味にVersionのNewが面倒なので地味に体力を削ってきますね(笑)

あとはSlackをそこそこ使えて、GASを扱えるならいじれそうですが、GASをいじれるのレベル感とこれらのAPI設定とか手間でないこと、分かっていないと結構辛くて、その割にリターンがないってことになりそうですね。

タイトルとURLをコピーしました