みなさま、毎日の時間計画はどのように立てていますでしょうか?
本日は、この頃近所の商店街歩きに心を躍らせている新卒1年目の礒が
時間/タスク管理のために趣味で作成したbotをご紹介します。
タスクと持ち時間を把握するリスト
サーバーワークスでは社内のチャットツールにSlackを利用しているのですが、
私は自分のチャンネルで毎朝その日のタスクを書き出しています。
このように、その日の勤務時間のうち予定の入っていない時間を計算し、
各タスクにかける時間の計画を立てるようにしています。
「いつでも・自動で」算出したい
「何事も終わりを意識しろ」とよく言いますね。
都度残り時間を確認できると、進捗と照らし合わせることができます。
節目節目で残り時間をチェックしたい。
できれば自動で算出したい。
ということで、slack上で今日の残り時間を教えてくれるbotを作ることにしました。
Google APIのクライアント作成
まず、Google APIを使えるようにします。
Google APIsのコンソール画面でプロジェクトを作成してカレンダーAPIを有効にして、
「OAuth 同意画面」でサービス名を設定します。次に、「認証情報を作成」からOAuthクライアントIDを作成しましょう。アプリケーションの種類は「その他」を選択します。
クライアントIDが作成できました!
右端のボタンから、クライアントIDとクライアントシークレットのJSONファイルをダウンロードします。
※ダウンロードしたファイルの名前は「client_secret.json」に変更しておきましょう。
Google APIと戯れる
さて、クライアントIDが取得できたところで早速APIを利用してみましょう。
APIのQuick startのStep 2に沿ってライブラリをインストールします。
Step 3のquickstart.pyを参考にして書いたスクリプトがこちらです。(クリックで展開します)
52行目まではquickstart.pyと同じ内容です。
このスクリプトではFreebusyというリソースを利用しています。
辞書型で返された各予定の開始時刻・終了時刻を読み込み、空き時間を足し算します。
足し算の結果と、ついでに各予定の開始時刻を教えてもらえるようにしました。
うまく動いたらSlackのbotにこの機能を持たせていきましょう!
Slackのbotに機能実装
ついにこの時がやってきました!(あと少しです)
Slackのbotを作成してトークンを取得したら、
Slackbotライブラリをインストールして環境を作りましょう。
※長くなるので、bot作成方法については後日別記事でご説明します。
環境構築の方法は「slackbot ライブラリ」などで検索するといくつか出てくるので、
やってみてください。
プラグインに設定したファイルに先ほどのスクリプトの105行目までを貼り付け、if文の代わりに以下を入力します。
これで、Slackでbotに「残り時間」とメンションすると目当てのデータを返してくれるようになります。
プラグインのファイルが編集できたら、
でbotを起動します。
Slackで呼びかけてみましょう。
返事をしてくれました!
(botが期待した反応をしてくれると結構嬉しいし愛着がわきますね!)
おわりに
残り時間bot、いかがでしたでしょうか。
長めのポストでしたが、最後までお読みいただきありがとうございました。
みなさまも是非、「こんなものがあったらいいな」と思うものを作って
もっと楽しく、もっとラクな業務にしていきましょう〜!