スプレッドシートでChatwork(チャットワーク)タスクを管理!GAS連携で転記を効率化

チャットワークでのメッセージ管理やタスクの整理を効率化したいと感じたことはありませんか?

手動でメッセージを整理するのは時間がかかりますが、Google Apps Scriptを活用すれば、チャットワークの情報を自動的にスプレッドシートへ転記することが可能です。

この記事では、チャットワークのAPIを利用してタスク内容や担当者、期日をGoogleスプレッドシートに転記する方法をご紹介します。

チャットワーク APIトークンの取得方法についてはこちらの記事をご参照ください。

目次

完成イメージ

GASを実行してチャットワークのタスクをスプレッドシートに転記

A列:タスク内容
B列:担当者
C列:期日

必要な準備

チャットワーク APIトークンの取得

スプレッドシートとチャットワークを連携するため、チャットワーク APIトークンを取得します。

取得方法については、こちらの記事をご参照ください。

チャットワークのルームIDの確認

転記したいメッセージがあるルームを開き、ブラウザのアドレスバーからURLを確認します。

例: https://www.chatwork.com/#!rid123456789

rid以降の数字部分(例: 123456789)がルームIDです。

手順

STEP
スプレッドシートを準備

スプレッドシートを開き、シート名を「チャットワーク」にします。

スクリプト実行時にこのシート名を参照して転記されます。

(必要に応じてシート名をご変更ください。)

STEP
GASエディタを開く

Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。

STEP
GASスクリプトの作成

function myFunction(){

}

が最初から入っているため、消去して以下のスクリプトを貼り付けます。

スクリプト3行目のYOUR_ROOM_IDに対象のルームIDを入力して書き換えます。

function fetchChatworkTasks() {
    const token = PropertiesService.getScriptProperties().getProperty("CHATWORK_API_TOKEN");
    const roomId = "YOUR_ROOM_ID"; // チャットワークのルームID
    const url = `https://api.chatwork.com/v2/rooms/${roomId}/tasks`;
    const options = {
        method: "get",
        headers: { "X-ChatWorkToken": token }
    };

    const response = UrlFetchApp.fetch(url, options);
    const tasks = JSON.parse(response.getContentText());

    const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("チャットワーク");
    if (!sheet) {
        throw new Error("シート名 'チャットワーク' が見つかりません。");
    }
    sheet.clear(); // 古いデータをクリア

    // ヘッダー行を設定
    const headerRange = sheet.getRange(1, 1, 1, 3);
    headerRange.setValues([[
        "タスク内容",
        "担当者",
        "期日"
    ]]);
    headerRange.setHorizontalAlignment("center");
    headerRange.setBackground("#d9ead3"); // 明るい緑色

    tasks.forEach((task, index) => {
        const rowIndex = index + 2;
        const taskContent = task.body; // タスク内容
        const assignee = task.account.name; // 担当者名
        const deadline = task.limit_time ? new Date(task.limit_time * 1000) : "なし"; // 期日

        sheet.getRange(rowIndex, 1).setValue(taskContent); // タスク内容をA列に
        sheet.getRange(rowIndex, 2).setValue(assignee); // 担当者をB列に
        sheet.getRange(rowIndex, 3).setValue(deadline); // 期日をC列に
    });
}
スクリプトの説明
APIトークンとルームIDの取得
const token = PropertiesService.getScriptProperties().getProperty("CHATWORK_API_TOKEN");
const roomId = "YOUR_ROOM_ID"; // チャットワークのルームID
  • PropertiesServiceを使用してスクリプトプロパティからチャットワーク APIのトークンを取得します。
  • roomIdにチャットワークのルームIDを指定します。
チャットワーク APIリクエストの設定
const url = `https://api.chatwork.com/v2/rooms/${roomId}/tasks`;
const options = {
    method: "get",
    headers: { "X-ChatWorkToken": token }
};
  • URL:チャットワークのタスク取得エンドポイント。
  • リクエストオプションX-ChatWorkTokenヘッダーにAPIトークンを設定。
タスクデータの取得
const response = UrlFetchApp.fetch(url, options);
const tasks = JSON.parse(response.getContentText());
  • UrlFetchApp.fetchでAPIにリクエストを送信。
  • レスポンスをJSON形式に変換してタスクデータを取得。
スプレッドシートの取得と初期化
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("チャットワーク");
if (!sheet) {
    throw new Error("シート名 'チャットワーク' が見つかりません。");
}
sheet.clear(); // 古いデータをクリア
  • アクティブなスプレッドシートから「チャットワーク」という名前のシートを取得。
  • シートが見つからない場合、エラーを返します。
  • 既存のデータをclear()で削除。
ヘッダー行の設定
const headerRange = sheet.getRange(1, 1, 1, 3);
headerRange.setValues([[
    "タスク内容",
    "担当者",
    "期日"
]]);
headerRange.setHorizontalAlignment("center");
headerRange.setBackground("#d9ead3"); // 明るい緑色
  • シートの1行目にヘッダーを追加。
  • セルの配置を中央揃えにし、背景色を設定。
タスクデータの書き込み
tasks.forEach((task, index) => {
    const rowIndex = index + 2;
    const taskContent = task.body; // タスク内容
    const assignee = task.account.name; // 担当者名
    const deadline = task.limit_time ? new Date(task.limit_time * 1000) : "なし"; // 期日

    sheet.getRange(rowIndex, 1).setValue(taskContent); // タスク内容をA列に
    sheet.getRange(rowIndex, 2).setValue(assignee); // 担当者をB列に
    sheet.getRange(rowIndex, 3).setValue(deadline); // 期日をC列に
});
  • forEachでタスクデータを処理
  • タスク内容(task.body)をA列に書き込み。
  • 担当者名(task.account.name)をB列に書き込み。
  • 期日(task.limit_time)をC列に書き込み。
  • 期日はUNIXタイムスタンプ形式のため、Dateオブジェクトに変換。
STEP
スクリプトを保存

スクリプトを書いたら、名前を付けて保存します。

(例:「チャットワーク」)

STEP
スクリプトを実行

スクリプトを実行してチャットワークのメッセージ内容を取得します。

初めてそのスクリプトを実行する場合は権限の確認が必要です。

そのため、『権限を確認』を押します。

許可の詳細手順

「詳細」をクリックします。

無題のプロジェクト(安全ではないページ)に移動」をクリックします。

許可」をクリックします。

STEP
タスク内容が転記される


定期的な自動実行

Google Apps Scriptの「トリガー」を設定することで、毎日または特定の時間間隔で自動実行が可能です。

まとめ

GASを使うことでチャットワークの情報を簡単にスプレッドシートへ転記できます。

手作業で整理するのと比べて大幅な時間節約になります。

ぜひご活用ください。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次