コンソールを使って指定のチャットワーク部屋のメッセージをすべて取得する。
これはなに?
チャットワークの部屋のログをすべて取得できるスクリプトの紹介です。
モチベーション
チャットワークのログをテキストデータとして取得できないかという相談がありました。
チャットワークの API だと最新100件までしか取得できないため、なんとかできないか試行錯誤しました。
https://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-messages
同じ目的のものとして goodbye_chatwork があったが、自分のログイン方法が SSO だったためか、reCAPTCHA の影響か 、直接は利用できなかった。スクリプトを参考にした。
スクリプトは?
以下の gist に上げています。
コンソールを使って指定のチャットワーク部屋のメッセージをすべて取得する。
https://gist.github.com/junjanjon/8ce62c1cb90e817b1247de672bf93116
以下の3行だけ書き換えればどの部屋でも利用できます。
// 取得したいチャットルームの最新のチャット ID
var target_chat_id = 1274532567885807616;
// 取得したいチャットルームのルーム ID
var target_room_id = 12345678;
// 最大再帰回数. 本番時は 10000 程度を指定してください.
var LIMIT_COUNT = 3;
どうやって使うの?
Google Chrome のデベロッパーツールの中の機能、コンソールを利用します。ほかのブラウザにも同等の機能があるので読み替えてください。
約 400 件のメッセージごとに1秒かかるようにしています。
どんな結果が来るの?
コンソールにすべてのメッセージがテキストとして出力されます。コピーボタンをクリックすればコピーできます。
実績は?
約3万件のメッセージがある bot 部屋(ニュースを流し続けていた部屋)のログをすべて収集できました。テキストで約 60[MB] でしたが、問題なくテキストエディタへコピペできました。
参考
ChatWorkからファイルも含めてログをエクスポートしたいならgoodbye_chatworkだ!KDDI ChatWork対応
https://qiita.com/hirokishirai/items/29bfdfc6d61b911aacc1
Author And Source
この問題について(コンソールを使って指定のチャットワーク部屋のメッセージをすべて取得する。), 我々は、より多くの情報をここで見つけました https://qiita.com/JunkiHiroi/items/4fb577e8a8912a7ffada著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .