GASでチャットワークAPI経由のタスク取得や登録・追加方法(ChatWorkClientライブラリ)

Google Apps Script(GAS)にはチャットワークAPIを簡単に操作できるChatWorkClientライブラリが用意されています。

GASのChatWorkClientライブラリを使用して、チャットワークAPI経由でタスクを取得したり、追加したりする方法を解説します。

チャットワークはAPI経由で各種操作可能

チャットツールのチャットワークにはChatworkAPIが用意されています。

チャットワークAPIを使えば、チャットメッセージの投稿や取得がAPI経由で実行可能です。

決まったタイミングでメッセージを投稿するボットなどをチャットワークAPIをプログラミングして作成できます。

チャットワークにはタスク機能も

チャットワークは基本的に色々なユーザーとのやり取りを行うチャットツールです。

メッセージの投稿機能に加えて、タスク機能が用意されています。

グループチャットなどでタスクを追加して、担当者や期限、実施ステータスを設定可能です。

さらにチャットに投稿されたメッセージをタスク化することができます。

チャットでやり取りした内容がそのままタスクとして登録し、Todo管理がチャットワークで実現できます。

タスク操作もチャットワークAPIで

前述したチャットワークAPIではタスク操作も対応しています。

チャットワークのチャット画面で実行するタスク登録や自分のタスクの取得、特定チャットで登録されたタスク取得がチャットワークAPI経由で操作可能です。

チャットワークAPIを使えば、チャットワークのタスク一覧の出力や、リマインドのプログラムを作ることができます。

GASのChatWorkClientでタスク操作可能

Google Apps Script(GAS)には、チャットワークAPIを簡単に操作できるChatWorkClientライブラリがあります。

ChatWorkClientのライブラリは、チャットワークAPIのエンドポイントで実行可能なすべての操作には対応していません。

しかし、チャットワークのタスクを取得することやタスクを登録・追加は可能です。

ChatWorkClientライブラリでできるタスク操作としては、以下の3つがあります。

  1. 自分が担当者のタスクを取得(getMyTasks)
  2. 特定チャットのタスクを取得(getRoomTasks)
  3. 特定チャットでタスクを登録追加(sendTask)

それぞれのタスク操作方法についてGASのサンプルコードを使って解説します。

自分が担当のタスク取得(getMyTasks)

1つ目は自分が担当者に設定されているチャットワークのタスクを取得するGoogle Apps Script(GAS)のサンプルコードです。

function getChatworkMyTasks() {
  //Chatwork API Tokenを定数として定義
  const token = '********************************';
  // ChatworkAPIクライアント作成
  const client = ChatWorkClient.factory({token: token});  
  //チャットワークから自分のタスクを取得
  const myTasks = client.getMyTasks();
  //取得した自分のチャットワークのタスクをログ出力
  console.log(myTasks);
}

チャットワークAPIを使うため、APIトークンを設定します。

自分のタスクを取得するだけなので、getMyTasksメソッドではルームIDなどの指定は必要ありません。

取得したタスクはオブジェクト形式になっているので、そのままconsole.logでログ出力します。

function getChatworkRoomTasks() {
  //Chatwork API Tokenを定数として定義
  const token = 'function getChatworkRoomTasks() {
  //Chatwork API Tokenを定数として定義
  const token = '********************************';
  //メッセージを取得したいルームIDを定数として定義
  const room_id ='+++++++++';
  // ChatworkAPIクライアント作成
  const client = ChatWorkClient.factory({token: token});  
  //チャットワークから自分のタスクを取得
  const tasks = client.getRoomTasks(room_id);
  //取得した自分のチャットワークのタスクをログ出力
  console.log(tasks);
}';
  //メッセージを取得したいルームIDを定数として定義
  const room_id ='294543902';
  // ChatworkAPIクライアント作成
  const client = ChatWorkClient.factory({token: token});  
  //チャットワークから自分のタスクを取得
  const tasks = client.getRoomTasks(room_id);
  //取得した自分のチャットワークのタスクをログ出力
  console.log(tasks);
}

チャットワークの自分のタスクを取得するGASサンプルコードを実行すると、自分のタスクの各種情報を参照できます。

※チャットワークAPI(ChatWorkClient)で取得したタスクの期限日はUNIX時間のため、通常の時間に変換が必要です。

特定ルームのタスクを取得(getRoomTasks)

2つ目に特定のグループチャットや個人チャットのルームで登録されたタスクを取得するGoogle Apps Script(GAS)のサンプルコードです。

function setChatworkTask() {
  //Chatwork API Tokenを定数として定義
  const token = '********************************';
  //メッセージを取得したいルームIDを定数として定義
  const room_id ='+++++++++';
  //タスク登録するユーザーIDリストを配列で定義
  const userList = [2------, 7------];
  let limit = new Date();
  limit = (new Number(limit.getTime() / 1000)).toFixed();
  // ChatworkAPIクライアント作成
  const client = ChatWorkClient.factory({token: token});  
  //チャットワークから自分のタスクの各種設定を定義
  const taskdetail = {
    body: 'GASによるタスク登録',
    to_id_list: userList,
    room_id: room_id,
    limit: limit
  };
  //チャットワークAPIにリクエストしてタスクを登録
  client.sendTask(taskdetail);
}

特定ルームのタスクのみ取得するためにルームIDをgetRoomTasksメソッドの引数に指定します。

自分のタスクを取得するgetMyTasksメソッドと異なり、他のユーザーのタスクも取得できています。

特定チャットでタスクを登録追加(sendTask)

3つ目はGoogle Apps Script(GAS)から特定のルームにタスクを登録するサンプルコードです。

タスクの登録にあたってはまず、チャットワークAPIトークンを用意します。

タスク登録に必要となる登録先ルームID、タスクの担当者のユーザー、期限日、そしてタスク名をオブジェクト形式でChatWorkClientライブラリのsendTaskメソッドに引数指定して実行します。

このようにGASのChatWorkClientライブラリを使うことで、チャットワークのタスクを取得したり、タスク登録もAPI経由で簡単に実行できます。

まとめ・終わりに

今回、Google Apps Script(GAS)でチャットワークAPIを使ってタスクを取得したり、タスクを登録追加する方法を紹介しました。

GASにはチャットワークAPI用ライブラリ「ChatWorkClient」があり、getMyTasksやgetRoomTasksでタスクを取得、sendTaskでタスク追加可能です。

期限切れタスクのリマインドするプログラムなどGASで作成することができます。

チャットワークのタスクを使っていて効率化したい場合に、紹介したGASのサンプルコードを参考にしてみてください。