![見出し画像](https://assets.st-note.com/production/uploads/images/77452073/rectangle_large_type_2_439d8fa9f86ac6f00bdd6342594acbf4.png?width=800)
[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.祝日リストを作る
![](https://assets.st-note.com/img/1651228083334-lKdqZy2AiG.png)
営業日を計算するために、祝日リストを用意する。
簡単に作るなら、内閣府のサイトからデータ持ってきてコピペすれば良い。内閣府のサイトにはCSVもある。
毎年コピペが面倒なら、GAS組んで自動更新しても良い。
内閣府
GASで祝日の参考
1-2.残り営業日を計算する。
![](https://assets.st-note.com/img/1651229135521-lIgl23ANUh.png?width=800)
こんな感じで計算します。今月の残り営業日数の計算結果、今日が4月29日で-1になってるな〜、うーん、まいっかあ。。。
営業日の計算はこの辺りを参考にした。
2.slack Appを作成する。
https://api.slack.com/ から作れば良い。日本語ブログはいろいろあるが、公式も見た方がいい。
![](https://assets.st-note.com/img/1651229899951-iTZb1kHk4F.png?width=800)
上記の説明から、簡単にいうと、
1.create an app,
2.give it some permission scopes,
3.install it to a suitable development workspace.
と、いうことになる。
1.create an app
![](https://assets.st-note.com/img/1651230046894-6LTj0L84ag.png?width=800)
上記の「create an app」をクリックすると、下記のリンク先に遷移する。https://api.slack.com/apps?new_app=1&track=scheduling-messages
そして、下記のような画面になる。
![](https://assets.st-note.com/img/1651230248223-uc1A89PJJw.png)
基本的に From scratch で作成していけば良いんでは無いかと思う。From an app manifestBETA はやったことないな、今度やってみたい。
![](https://assets.st-note.com/img/1651230365919-OzBSAlWnCp.png)
名前を入力して、ワークスペースを選べば、Create Appできる。
2.give it some permission scopes
![](https://assets.st-note.com/img/1651230522844-5UVY4TflnN.png?width=800)
なんやかんやと説明があって、
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」でスコープ設定しようね、ってことだ。
![](https://assets.st-note.com/img/1651231000614-GzHf2fB0Kb.png?width=800)
![](https://assets.st-note.com/img/1651231088413-Aj6wecv6bU.png?width=800)
えーと、今回の botのスコープどうしてたっけ、あ、これ、ちょっと整理しないとな。
![](https://assets.st-note.com/img/1651231334655-qVX9Bi5FDn.png?width=800)
権限については、こちらの記事も参照した。
3.install it to a suitable development workspace
![](https://assets.st-note.com/img/1651231414710-MavZphD6Mo.png?width=800)
ここはそんな難しくないですね。
![](https://assets.st-note.com/img/1651231484953-LyNP7Ozajh.png)
3.GASを書く。
コードはGitHubにまとめた。今回はクラス化を頑張った。
謝辞
本件の作成にあたって、ノンプロ研およびTwitterの皆様に大変お世話になりました。深く御礼申し上げます。
作成中のnote
作成中のメモ、自分の考えの整理としてnote書いてた。
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!