Chatworkのメッセージを取得する
ビジネスチャットツール「Charwork」のグループチャットの内容を、まとめてExcelに出力したいと思います。
なお、Chatworkでは、外部プログラムから利用するために「チャットワークAPI」が公開されています。また、サーバーに負荷をかける行為は禁止されています。今回はあくまでも練習として自動操作をしますが、普段はチャットワークAPIを利用しましょう。
Chatwork画面
ログイン後、グループチャットを選択し、メッセージを取得します。個々のメッセージには、内部的にメッセージIDが振られています。このメッセージIDは時系列で並んでいますので(新しいほどIDが大きくなる)メッセージIDを手掛かりに「メンバー」「日時」「メッセージ内容」「ファイル情報」を取得します。
Excelシート
メッセージ出力に使用するExcelシートです。
【ファイル欄】にファイル情報を出力し、【リンク欄】にはPCにダウンロードしたファイルのリンクアドレスを表示させます。
Excelシートの設定
上記のシートを、Excelタブで入出力シートに設定しておきます。
シナリオ作成
全体の構成として、ログイン処理、Excel出力の部分を、別タブに持たせてサブルーチン化します。
シナリオイメージ
ログイン操作とExcel出力操作を別タブでサブルーチン化し、シナリオ本体から【EXECUTE】で呼び出します。
シナリオ本体部分では、
- すでにExcel出力済のメッセージIDを取得する。(#2)
- 1で取得したメッセージIDより、IDが大きいメッセージを、順番に取得してExcel出力する。(#3,4)
シナリオ作成のポイントとして
- 1,2の処理で、それぞれループ(WHILE文)を使用します。
- 画面上で最新のメッセージを取得するためのXPathとして、グループ内で最後の要素を表す【last()】を使用します。
- 順番にメッセージを取得するためのXPathとして、前後の兄弟要素を取得する 【preceding-sibling::】【following-sibling::】を使用します。
- 添付ファイルをダウンロードする場合、ファイル名が変わる場合があるので、実際にダウンロードされるファイル名を取得し、Excelに出力します。
操作シナリオ
ダウンロード
シナリオとExcelシートのファイルです。