Chatworkのメッセージを取得する

2023年4月6日

ビジネスチャットツール「Charwork」のグループチャットの内容を、まとめてExcelに出力したいと思います。

なお、Chatworkでは、外部プログラムから利用するために「チャットワークAPI」が公開されています。また、サーバーに負荷をかける行為は禁止されています。今回はあくまでも練習として自動操作をしますが、普段はチャットワークAPIを利用しましょう。

Chatwork画面

Chatwork画面

ログイン後、グループチャットを選択し、メッセージを取得します。個々のメッセージには、内部的にメッセージIDが振られています。このメッセージIDは時系列で並んでいますので(新しいほどIDが大きくなる)メッセージIDを手掛かりに「メンバー」「日時」「メッセージ内容」「ファイル情報」を取得します。

Excelシート

メッセージ出力に使用するExcelシートです。

【ファイル欄】にファイル情報を出力し、【リンク欄】にはPCにダウンロードしたファイルのリンクアドレスを表示させます。

Excelシートの設定

上記のシートを、Excelタブで入出力シートに設定しておきます。

シナリオ作成

全体の構成として、ログイン処理、Excel出力の部分を、別タブに持たせてサブルーチン化します。

シナリオイメージ

ログイン操作とExcel出力操作を別タブでサブルーチン化し、シナリオ本体から【EXECUTE】で呼び出します。

EXECUTEを使用して別タブを実行する

シナリオ本体部分では、

  1. すでにExcel出力済のメッセージIDを取得する。(#2)
  2. 1で取得したメッセージIDより、IDが大きいメッセージを、順番に取得してExcel出力する。(#3,4)

シナリオ作成のポイントとして

  • 1,2の処理で、それぞれループ(WHILE文)を使用します。
  • 画面上で最新のメッセージを取得するためのXPathとして、グループ内で最後の要素を表す【last()】を使用します。
  • 順番にメッセージを取得するためのXPathとして、前後の兄弟要素を取得する 【preceding-sibling::】【following-sibling::】を使用します。
  • 添付ファイルをダウンロードする場合、ファイル名が変わる場合があるので、実際にダウンロードされるファイル名を取得し、Excelに出力します。

操作シナリオ

ログイン処理

メッセージの取得

Excelに出力

ダウンロード

シナリオとExcelシートのファイルです。

操作シナリオ

Excelシート(結果)