公式ブログでは、「チャットワーク × Google Apps for Work:Google Apps Scriptでチャットワークのタスク追加を自動化する方法」を全4回にわたり紹介します。前回はGoogle Apps Scriptを活用してタスクを自動化する方法を紹介しました。
今回は応用編で、Google Apps Scriptを使ってチャットワークの期限つきタスクを自動追加する方法を紹介していきます。
チャットワークにタスクを追加するAPIリクエストを作成
前回おこなった「週報作成」のタスクに、期限「9月9日」を自動追加するプログラムを作成していきましょう。
----------------------------------------------------------------------------------
・投稿したいチャット:マイチャット
・タスク担当者:自分
・タスク内容:「週報作成」というタスクを追加する
・期限:9月9日
----------------------------------------------------------------------------------
タスクの追加に関するリクエストは、チャットワークAPIドキュメントのサイトより確認することができます。
タスクの期限はlimitというキーでpayload内に渡します。limitのパラメータの型はIntegerです。
----------------------------------------------------------------------------------
◆ タスクの追加に関するリクエスト
POST /rooms/{room_id}/tasks:チャットに新しいタスクを追加
body(必須):タスクの内容
limit:タスクの期限 (UNIX時間* で入力してください)
to_ids(必須):担当者のアカウントID (担当者のアカウントIDをカンマ区切りで)
◆ リクエストURL
https://api.chatwork.com/v1/rooms/{room_id}/tasks
----------------------------------------------------------------------------------
*UNIX時間とは:Wikipedia
getTimeメソッドでUNIX時間を取得する
Google Apps Scriptでは、getTimeメソッドでUNIX時間を取得することができますが、getTimeメソッドではミリ秒で取得するため、1,000倍にして単位を秒に変換しましょう。
----------------------------------------------------------------------------------
Dateオブジェクト.getTime()
----------------------------------------------------------------------------------
しかし、このまま実行するとlimtの値がintegerではないので、エラーとなってしまいます。
toFixedメソッドで指数表記を固定小数点表記に変換する
前述スクリプトの18行目、paramsへのパラメータ格納が終わったところにブレークポイントを設置して、デバッグしてみましょう。
payload内のlimitの値が指数表記になっていることが原因でエラーが出ているため、数値を固定小数点表記に変換するためにtoFixedメソッドを使いましょう。
----------------------------------------------------------------------------------
数値オブジェクト.toFixed(桁数)
----------------------------------------------------------------------------------
桁数には小数点以下の桁数を指定します。0または省略で小数点以下0桁の整数表記になります。スクリプト7行目の後に、下記を追加しましょう。
いざ、実行!
必要な要素を入力し、スクリプトを実行してみると、期限つきのタスクが自動追加されました!
まとめ
今回は、Google Apps Scriptを使って期限つきタスクを自動追加する方法について紹介しました。期限当日にタスクを自動通知してくれるので便利ですよ!
*監修:タカハシノリアキさん(@ntakahashi0505)
いつも隣にITのお仕事:http://tonari-it.com/