[GAS][slack]営業日カウントダウンbotを作った。いったんまとめ。
前書き
GASでだいだい出来たので、作り方や注意などをまとめておく。
細かく書くとキリが無いのでダイジェスト版として。
今回のbotは、スプレッドシートで計算した残営業日を取得し、それをslackで通知する、という仕組みになっている。
いろいろ不具合やスマートでないところもあると思うので、お気づきの点はコメントいただければ幸いです。
今回はGASで作ったが、zapier でも出来るし、下記の通りslack botアプリ「Callie」もある。zapier については、また後でまとめる。
zapier
https://note.com/0375/n/n6bdeb3ca0853
Callie, a countdown bot for Slack
https://callie-corgi.herokuapp.com/
GitHub
コードを見たい人はこちらをどうぞ。
https://github.com/ymgcmnk/RemainingBusinessDaysCountdown-NotificationSlackBot/blob/main/README.md
作成手順
スプレッドシートを用意し、残りの営業日を計算する。
slack Appを作成する。
GASを書く。
1.スプレッドシートを用意し、残りの営業日を計算する。
スプレッドシートでは、大まかに下記の2工程。
1-1.祝日リストを作る
1-2.残り営業日を計算する。
1-1.祝日リストを作る
営業日を計算するために、祝日リストを用意する。
簡単に作るなら、内閣府のサイトからデータ持ってきてコピペすれば良い。内閣府のサイトにはCSVもある。
毎年コピペが面倒なら、GAS組んで自動更新しても良い。
内閣府
GASで祝日の参考
1-2.残り営業日を計算する。
こんな感じで計算します。今月の残り営業日数の計算結果、今日が4月29日で-1になってるな〜、うーん、まいっかあ。。。
営業日の計算はこの辺りを参考にした。
2.slack Appを作成する。
https://api.slack.com/ から作れば良い。日本語ブログはいろいろあるが、公式も見た方がいい。
上記の説明から、簡単にいうと、
1.create an app,
2.give it some permission scopes,
3.install it to a suitable development workspace.
と、いうことになる。
1.create an app
上記の「create an app」をクリックすると、下記のリンク先に遷移する。https://api.slack.com/apps?new_app=1&track=scheduling-messages
そして、下記のような画面になる。
基本的に From scratch で作成していけば良いんでは無いかと思う。From an app manifestBETA はやったことないな、今度やってみたい。
名前を入力して、ワークスペースを選べば、Create Appできる。
2.give it some permission scopes
なんやかんやと説明があって、
Head over to app config page for your app.
Navigate to the OAuth & Permissions page.
Scroll down to the Bot Token Scopes section.
Click Add an OAuth Scope.
Add the scopes listed above.
「OAuth & Permissions」でスコープ設定しようね、ってことだ。
えーと、今回の botのスコープどうしてたっけ、あ、これ、ちょっと整理しないとな。
権限については、こちらの記事も参照した。
3.install it to a suitable development workspace
ここはそんな難しくないですね。
3.GASを書く。
コードはGitHubにまとめた。今回はクラス化を頑張った。
謝辞
本件の作成にあたって、ノンプロ研およびTwitterの皆様に大変お世話になりました。深く御礼申し上げます。
作成中のnote
作成中のメモ、自分の考えの整理としてnote書いてた。
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!