サイトのAPI図鑑B版
掲載情報が正確でない可能性があります。
SNS・コミュニケーションAPI

ChatWork APIでビジネスチャットを自動化する実装ガイド

ChatWork APIを使ったメッセージ送信・タスク管理・ファイル送信の自動化方法を解説。日報・アラート通知・タスク自動作成などの業務自動化実装例を紹介します。

#ChatWork#ビジネスチャット#業務自動化#通知

ChatWork APIの概要

ChatWork(チャットワーク)は日本で広く使われているビジネスチャットサービスです。ChatWork APIを使うことで、メッセージの送信・タスクの作成・ファイルの添付などの操作をプログラムから自動化できます。日報の自動投稿・システムアラートの通知・定期レポートの送付などのユースケースに活用されています。

APIトークンの取得

ChatWork APIは個人のAPIトークンを使った認証方式です。

  1. ChatWorkにログイン
  2. アカウント設定→API設定→「APIトークン発行」
  3. 発行されたトークンを環境変数として管理

APIトークンはアカウントに紐づいた個人トークンのため、共有サービス・チームで使う場合は専用のサービスアカウントを用意することを推奨します。

メッセージ送信の実装

const sendChatworkMessage = async (roomId, message) => {
  const response = await fetch(
    `https://api.chatwork.com/v2/rooms/${roomId}/messages`,
    {
      method: 'POST',
      headers: {
        'X-ChatWorkToken': process.env.CHATWORK_API_TOKEN,
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      body: new URLSearchParams({ body: message })
    }
  );
  return response.json();
};

// 使用例
await sendChatworkMessage(123456789, '[info][title]デプロイ完了[/title]本番環境のデプロイが完了しました[/info]');

ChatWorkの書式記法(マークアップ)

ChatWorkのメッセージには独自のマークアップ記法があります。

  • [info][title]タイトル[/title]本文[/info]:情報ボックス
  • [To:ユーザーID]:メンション
  • [code]コード[/code]:コードブロック
  • [qt]引用テキスト[/qt]:引用
  • [hr]:水平線

タスクの自動作成

特定のルームにタスクをAPI経由で作成できます。担当者・期限を指定することも可能です。

const createTask = async (roomId, body, assigneeIds, deadline) => {
  const response = await fetch(
    `https://api.chatwork.com/v2/rooms/${roomId}/tasks`,
    {
      method: 'POST',
      headers: {
        'X-ChatWorkToken': process.env.CHATWORK_API_TOKEN,
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      body: new URLSearchParams({
        body,
        to_ids: assigneeIds.join(','),
        limit: deadline // UNIXタイムスタンプ
      })
    }
  );
  return response.json();
};

Webhookの活用

ChatWork Webhookを使うと、ルーム内でのイベント(メッセージ送信・タスク完了等)を受け取れます。Webhookエンドポイントをコンソールで設定し、イベントを受け取ってCIのトリガーやSlackへの転送などに活用できます。

業務自動化の活用例

  • 日報の自動通知:毎朝定時にGASやcronで業務内容・売上データを投稿
  • エラーアラート:Sentryのエラーが発生したらChatWorkに通知
  • タスク自動作成:受注システムの新規受注をタスクとして自動作成
  • 承認フロー:申請フォームの回答をChatWorkに投稿して確認依頼

まとめ

ChatWork APIは日本のビジネス現場で広く使われているチャットワークの業務自動化に活用できます。個人APIトークン認証でシンプルに使えるため、Slackほど複雑なセットアップが不要です。Python・Node.jsのどちらからでも容易に実装でき、Google Apps Scriptとの組み合わせでスプレッドシートとの連携も実現できます。

よくある質問

Q.ChatWork APIはどのプランから使えますか?

ChatWork APIはフリープランを含むすべてのプランで利用できます。APIトークンはアカウント設定から発行できます。ただし、フリープランにはグループチャットの制限など機能制限があります。

Q.ChatWork APIのレート制限はどのくらいですか?

ChatWork APIのレート制限は1分間に60リクエストです。超過した場合は429 Too Many Requestsが返ります。一括処理が必要な場合はリクエスト間にインターバルを設けてください。

Q.Webhookで受け取れるイベントの種類は?

ChatWork Webhookでは、メッセージ作成・タスク作成・タスク完了・メンバー追加・メンバー削除などのイベントを受け取れます。特定のルームのイベントのみを受け取るよう設定できます。

関連記事