GASでスプレッドシート→slack投稿の改修
前回やったコードだと以下のような課題があったため改修してみたのでその記録。
- slack投稿しなくて良いステータス変更は投稿しないようにしたい
- 一部のslack投稿ではメンションを飛ばしたい
- ステータス”完了”時に日付がスプレッドシートに記入されるようにしたい
slack投稿しなくて良いステータス変更は投稿しないようにしたい
これはif文で条件分岐すれば良いとはわかるが「いずれかの条件を満たすとき」の書き方がわからなかった。 結局、特定のステータスになったときのフラグを0,1にしてスプレッドシート上の関数で分けて、それをGASで判断するというやり方になったが、これはスマートでないのは素人にもわかる。
同じことをやるにしても、GAS上でやった方が良さそう。 もしくは↓のようにsomeメソッド?を使う? 方がスマートかもしれない雰囲気。
GASで列データの配列に特定の値が含まれているかを判定するsomeメソッドの使い方
今後も同じようなことは必要となりそうなので、もっとちゃんと勉強した方が良さそう。
一部のslack投稿ではメンションを飛ばしたい
メンションを飛ばすのに”@hogehoge"ではダメと知り、↓のように書けば良いと学んだ。
SlackのIncoming Webhooksでメンションを飛ばす方法 - Qiita
これもスプレッドシート上にUSER_IDのテーブルを作って、スプレッドシートの関数でなんとかしたが、これももっと良いやり方がありそう。
ステータス”完了”時に日付がスプレッドシートに記入されるようにしたい
setValueメソッドでセルの入力をする、New DATE()で今日の日付を取得する、を組み合わせることでいけた。 シンプルだけど、これを自動化できると割と省力化&抜け漏れ防止につながった。