ChatWork APIの概要
ChatWork(チャットワーク)は日本で広く使われているビジネスチャットサービスです。ChatWork APIを使うことで、メッセージの送信・タスクの作成・ファイルの添付などの操作をプログラムから自動化できます。日報の自動投稿・システムアラートの通知・定期レポートの送付などのユースケースに活用されています。
APIトークンの取得
ChatWork APIは個人のAPIトークンを使った認証方式です。
- ChatWorkにログイン
- アカウント設定→API設定→「APIトークン発行」
- 発行されたトークンを環境変数として管理
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との組み合わせでスプレッドシートとの連携も実現できます。