コンサルティング先のお客様から「無料プランのチャットワーク投稿をエクスポートしたい」と言うご相談がありましたので、こちらに対する解決方法を以下に記述致します。
解決方法
goodbye_chatwork という Ruby 言語で書かれた コマンドを利用することで簡単に行えます。
goodbye_chatwork 利用手順
- Ruby のインストール
- goodbye_chatwork のインストール
- goodbye_chatwork の使い方
1.Ruby のインストール(Windows版)
対象は Windows マシンを想定しております。
Macをお使いの場合は Ruby はデフォルトでインストールされておりますので、この節は読み飛ばして下さい。
Windows への Ruby のインストールは以前、私が書きました以下の記事を参考にして下さい。
Windows環境へのRubyのインストール
2.googbye_chatwork のインストール
Windows の[スタート]→[すべてのプログラム]→[アクセサリ]→[コマンドプロンプト]でコマンドプロンプトウィンドウを開き、以下のコマンドを入力します。
> gem install goodbye_chatwork
すると、以下のように Ruby のパッケージ管理システム「RubyGems」を通じて goodbye_chatwork がインストールされます。
Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.12.0.1.gem (100%)
Successfully installed faraday-0.12.0.1
Fetching: unf_ext-0.0.7.4-x64-mingw32.gem (100%)
Successfully installed unf_ext-0.0.7.4-x64-mingw32
Fetching: unf-0.1.4.gem (100%)
Successfully installed unf-0.1.4
Fetching: domain_name-0.5.20170404.gem (100%)
Successfully installed domain_name-0.5.20170404
Fetching: http-cookie-1.0.3.gem (100%)
Successfully installed http-cookie-1.0.3
Fetching: faraday-cookie_jar-0.0.6.gem (100%)
Successfully installed faraday-cookie_jar-0.0.6
Fetching: goodbye_chatwork-0.0.6.gem (100%)
Successfully installed goodbye_chatwork-0.0.6
invalid options: -SHN
(invalid options are ignored)
Parsing documentation for multipart-post-2.0.0
Installing ri documentation for multipart-post-2.0.0
Parsing documentation for faraday-0.12.0.1
Installing ri documentation for faraday-0.12.0.1
Parsing documentation for unf_ext-0.0.7.4-x64-mingw32
Installing ri documentation for unf_ext-0.0.7.4-x64-mingw32
Parsing documentation for unf-0.1.4
Installing ri documentation for unf-0.1.4
Parsing documentation for domain_name-0.5.20170404
Installing ri documentation for domain_name-0.5.20170404
Parsing documentation for http-cookie-1.0.3
Installing ri documentation for http-cookie-1.0.3
Parsing documentation for faraday-cookie_jar-0.0.6
Installing ri documentation for faraday-cookie_jar-0.0.6
Parsing documentation for goodbye_chatwork-0.0.6
Installing ri documentation for goodbye_chatwork-0.0.6
Done installing documentation for multipart-post, faraday, unf_ext, unf, domain_
name, http-cookie, faraday-cookie_jar, goodbye_chatwork after 11 seconds
8 gems installed
3.goodbye_chatwork の使い方
チャットルーム一覧(room_id, room_name)を取得するコマンドは以下の通りです。
> goodbye_chatwork -i チャットワークに登録のメールアドレス -p パスワード
例えば、チャットワークに登録のメールアドレスが 「hogehoge@hogehoge.com」、パスワードが「hogehoge」の場合、以下のような結果になります。
(動作に失敗する場合は、本ページ後述の「※ 特記事項: SSL エラー対応」を参照願います。)
>goodbye_chatwork -i hogehoge@hogehoge.com -p hogehoge
2017-04-23T16:42:41+09:00 login as hogehoge@hogehoge.com ...
2017-04-23T16:42:41+09:00 load initial data...
2017-04-23T16:42:42+09:00 load account info
52317712 mychat 53
53770634 ワードプレス 83
54513841 Rubyプログラミングの部屋 25
この出力の中で、出てきた 「mychat」、「ワードプレス」、「Rybyプログラミングの部屋」がチャットワークのそれぞれのチャットルームにあたり、「mychat(マイチャット)」の部屋の room_id は 52317712 となります。
特定のチャットルームのテキストログとファイルを取得するコマンドは以下の通りです。
> goodbye_chatwork -i メールアドレス -p パスワード -x room_id
例えば、チャットルーム「マイチャット」の room_id 52317712 を利用して、hogehoge@hogehoge.com のテキストログとファイルを取得した場合、以下のような結果となります。
>goodbye_chatwork -i hogehoge@hogehoge.com -p hogehoge -x 52317712
2017-04-23T18:19:06+09:00 login as hogehoge@hogehoge.com ...
2017-04-23T18:19:06+09:00 load initial data...
2017-04-23T18:19:08+09:00 load account info
2017-04-23T18:19:12+09:00 mkdir chatwork_logs
2017-04-23T18:19:12+09:00 export logs 52317712 ...
2017-04-23T18:19:12+09:00 get old chat 0- ...
2017-04-23T18:19:14+09:00 get file info 143056045 ...
・
・
・
2017-04-23T18:26:45+09:00 create chatwork_logs/52317712_mychat.csv
(画像ファイルが多い場合、ダウンロードに時間がかかるかも知れません。)
出力した結果は エクスプローラーの個人用フォルダ ( C:\Users\(アカウント名)) 直下に 「chatwork_logs」というフォルダ名で保存されます。
※ 特記事項: SSL エラー対応
これまでの手順で、goodbye_chatwork を起動すると、以下のエラーが発生して、正常に動作を確認することができない場合があります。
C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock': SSL_connect
returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify
failed (Faraday::SSLError)
ダウンロード方法は、ページ中の 「cecert.pem」のリンクを右クリックし、ポップアップメニューの「名前を付けてリンク先を保存…」を選択し、エクスプローラーの個人用フォルダ (C:\Users\(アカウント名)) に保存します。
その後、コマンドプロンプトで以下のコマンドを実行すると、以降、正常に goodbye_chatwork を利用することが可能となります。
> set SSL_CERT_FILE=./cacert.pem
尚、上記の方法は、コマンドプロンプトを起動するたびに行う必要があります。
この手順を今後、行わないようにしたい場合は、以下の方法で Windows の環境変数を設定して下さい。
SSL_CERTファイルの Windows環境変数への登録方法
Windows の [スタート]→[コンピュータ]を右クリックし、プルダウンメニューの[プロパティ]をクリックします。
コントロールパネルの[システム]画面が開くので、画面左側の[システムの詳細設定]リンクをクリックします。
[システムのプロパティ]ダイアログが開くので、[詳細設定]タブを選択します。
[詳細設定]タブの下側にあるボタン[環境変数(N)…]をクリックします。
[環境変数]ダイアログが開くので、上側の[ (ユーザー名)のユーザー環境変数]の下にあるボタン[新規(N)…]をクリックします。
[新しいユーザー変数]ダイアログが開くので、以下の通り入力します。(以下の値をコピペすると確実です。)
- 変数名: SSL_CERT_FILE
- 変数値: %HOMEPATH%\cacert.pem
[OK]ボタンをクリックして、[新しいユーザー変数]ダイアログを閉じます。
[OK]ボタンをクリックして、[環境変数]ダイアログを閉じます。
[OK]ボタンをクリックして、[システムのプロパティ]ダイアログを閉じます。
これで手続きは完了です。次回からコマンドプロンプト起動後に、set コマンドを打ち込む必要はありません。