カテゴリー別アーカイブ: Rubyプログラミング

チャットワークの投稿をバックアップする方法

コンサルティング先のお客様から「無料プランのチャットワーク投稿をエクスポートしたい」と言うご相談がありましたので、こちらに対する解決方法を以下に記述致します。

解決方法

goodbye_chatwork という Ruby 言語で書かれた コマンドを利用することで簡単に行えます。

goodbye_chatwork 利用手順

  1. Ruby のインストール
  2. goodbye_chatwork のインストール
  3. 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 をエクスプローラの個人フォルダ直下にダウンロードして下さい。
https://curl.haxx.se/docs/caextract.html
ダウンロード方法は、ページ中の 「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 コマンドを打ち込む必要はありません。
Share Button

はじめての Ruby プログラム ~Hello Ruby~

Ruby をインストールしたら、早速、プログラミングを始めましょう。

まず、Windows の「スタート」メニューから、
「すべてのプログラム」→「Ruby x.x.x-pxxx-xxx」→「Ruby コマンドプロンプトを開く」
で、Ruby プログラミング用コマンドプロンプトウィンドウを開きます。

※「Ruby x.x.x-pxxx-xxx」の x の部分はインストールしたRubyのバージョンに読み替えて下さい。

Ruby用コマンドプロンプトウィンドウ

Ruby用コマンドプロンプトウィンドウ

ここで、テキストエディタの「メモ帳」を開くために、以下のコマンドを実行しましょう。

>notepad HelloRuby.rb

このコマンドの notepad は、メモ帳を開くためのコマンドで、この後に続く HelloRuby.rb は、notepad コマンドの引数(ひきすう)であり、
「HelloRuby.rb というプログラムを書くためにメモ帳を開きなさい」と、Windowsに命令をしているのです。

Enterキーを押下すると、真っ白いメモ帳の画面が開き、画面上に以下のダイアログが表示されますが、そのまま「はい」をクリックして閉じて下さい。

2014-05-24 18.00.19

ダイアログを閉じたら、メモ帳に以下のプログラムコードを記述します。(※先頭の数字「1」はプログラムの行数を分かりやすくするためのものですので、メモ帳には記述しません。)

puts "Hello Ruby"
メモ帳にプログラムを記述する

メモ帳にプログラムを記述する

メモ帳のウインドウメニューから「ファイル」→「上書き保存」をクリックしてプログラムをファイルに保存した後、メモ帳を終了させて下さい。

再び、コマンドプロンプトウィンドウに戻り、以下のコマンドをを実行して下さい。

>ruby HelloRuby.rb

画面上に以下の出力結果が表示されます。

Hello Ruby
実際の実行結果画面

実際の実行結果画面

どうですか? これだけですが、これでもちゃんとした Ruby プログラムなのです。

今回の手順を以下に記述します。

  1. Ruby用コマンドプロンプトを開く
  2. プログラム名を指定してメモ帳を開く
  3. メモ帳にプログラムを記述して保存、終了する
  4. 書いたプログラムを実行する

今後、しばらくの間はこの手順でプログラミングを説明しますので、流れをしっかり覚えて下さいね。

Share Button

コマンドとしてのRuby

Ruby言語で記述したプログラムは、ruby というコマンドラインアプリケーションを通じてプログラムを動作させます。

ここでは、その ruby コマンドのヘルプメッセージの読み方について解説します。

コマンドプロンプトから次のコマンドを実行してみましょう。

>ruby --help

これは、「”ruby” というコマンドに “–help” というオプションを加えて実行して下さい。」と言う意味です。
まず、”ruby” ですが、Windows ではこのコマンドの実態は “ruby.exe”というファイルで、コマンドプロンプト上では拡張子の “.exe” を省略して呼び出すことができます。
“–help” は、ヘルプ(助けて)、つまり「Rubyの使い方を教えて下さい」という意図を ruby コマンドに伝えるためのオプションなのです。

コマンドを実行すると以下のような結果が出力されます。

Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)
  -a              autosplit mode with -n or -p (splits $_ into $F)
  -c              check syntax only
  -Cdirectory     cd to directory before executing your script
  -d, --debug     set debugging flags (set $DEBUG to true)
  -e 'command'    one line of script. Several -e's allowed. Omit [programfile]
  -Eex[:in], --encoding=ex[:in]
                  specify the default external and internal character encodings
  -Fpattern       split() pattern for autosplit (-a)
  -i[extension]   edit ARGV files in place (make backup if extension supplied)
  -Idirectory     specify $LOAD_PATH directory (may be used more than once)
  -l              enable line ending processing
  -n              assume 'while gets(); ... end' loop around your script
  -p              assume loop like -n but print line also like sed
  -rlibrary       require the library before executing your script
  -s              enable some switch parsing for switches after script name
  -S              look for the script using PATH environment variable
  -T[level=1]     turn on tainting checks
  -v, --verbose   print version number, then turn on verbose mode
  -w              turn warnings on for your script
  -W[level=2]     set warning level; 0=silence, 1=medium, 2=verbose
  -x[directory]   strip off text before #!ruby line and perhaps cd to directory
  --copyright     print the copyright
  --enable=feature[,...], --disable=feature[,...]
                  enable or disable features
  --external-encoding=encoding, --internal-encoding=encoding
                  specify the default external or internal character encoding
  --version       print the version
  --help          show this message, -h for short message
Features:
  gems            rubygems (default: enabled)
  rubyopt         RUBYOPT environment variable (default: enabled)

これがrubyコマンドの使い方を表した結果です。何やら英語だらけでワケが分からない感じがしますが、落ち着いて見て行きましょう。
先頭にある構文がもっとも重要なものになります。

Usage: ruby [switches] [--] [programfile] [arguments]

この先頭の「Usage」ですが、これは「ユーセージ」と発音し(「うさげ」ではありません)、「使い方」という意味です。 コマンドラインアプリケーションのヘルプは一般的に、この形式で説明をしているものが殆どですので、覚えておきましょう。

まず角括弧ですが、これは「括弧に囲まれた部分を省略しても良い」という意味で、swhitches, –, programfile, arguments のすべてを省略しても良いということです。

実際に ruby とコマンドを打っただけでも ruby は正常に動作します。(但し、この場合はプログラムファイルの代わりにキーボードから Rubyスクリプトを打ち込み、最後にキーボードからCtrlキーを押しながら Dキーをタイプして Enterキーを押下してコマンドを終了させなければなりませんが…。)

>ruby
puts "Hello"
puts "World"
^D ※Ctrlキーを押しながらDキーをタイプ、Enterキーを押下して終了
Hello
World

続いて switches ですが、これは「オプション」とも呼ばれ、”-” ハイフンから始まる文字列のことです。

ハイフンが1つだけの場合は、「ショート形式のオプション」であり、ハイフンが2つの場合は、「ロング形式のオプション」です。

ショート形式のオプションの場合は、ハイフンに続くアルファベット1文字のみが機能を示すオプションとして認識され、2文字目以降に続く英数字はこの機能に対するパラメータとされます。

ロング形式のオプションの場合は、ハイフン2つ以降に続く文字列が機能名を表します。また、イコール(=)の後に続く英数字はこの機能に対するパラメータです。

先に実行の “ruby –help” の出力結果画面の2行目以降が上記形式で解説されています。
詳しい説明を知りたい方は、Rubyのリファレンスマニュアルを参照して下さい。

Ruby 2.0.0 リファレンスマニュアル > Rubyの起動

[–] は先に解説のようなオプションの指定が終了したことを ruby コマンドに伝えるためのオプションです。

programfile はRuby言語によって記述されたプログラムを収めたテキストファイルを指定します。 一般的に拡張子 .rb をしていたものが使われますが、拡張子が無くてもプログラムは実行されます。

arguments は、「引数(ひきすう)」と呼ばれます。これは Rubyで書かれたプログラムに渡すパラメーターのことであり、スペース区切りでいくつでも指定することが出来ます。

Share Button

Windows環境へのRubyのインストール

Ruby のインストールには様々な方法があります。

今回は初心者向けに Windows のコマンドプロンプト上でRubyプログラムを実行させるという、最もお手軽な方法を実現するためのインストール方法について記述します。

Ruby Installer のダウンロード

Ruby をインストールするための RubyInstaller は以下のサイトから入手することが出来ます。
http://rubyinstaller.org/

RubyInstaller のホームページ

RubyInstaller のホームページ

このページの上部のにある赤い「Download」ボタンをクリックするとダウンロードページに移動します。
http://rubyinstaller.org/downloads/

RubyInstaller のダウンロードページ

RubyInstaller のダウンロードページ

どのインストーラーをダウンロードするか

 ダウンロードページの「RubyInstallers」直下の項目から、最新版のインストーラーをダウンロードします。
 項目名「Ruby *.*.*-p***」のRuby の後に続く数字の大きいものほど新しいバージョンのものです。特に事情が無い限りは最新版をダウンロードして下さい。
 また、お手持ちのPCが64bit マシンであることが分かっている場合は、項目名に(x64) という文字を含むものをダウンロードして構いません。 32bitマシン、あるいは分からない場合は、(x64)という文字が含まれていないものをダウンロードして下さい。
(このページでは、Ruby 2.0.0-p481 (x64) をインストールする操作について説明しています。)

インストーラーを起動する

ダウンロードしたインストーラの実行形式ファイル(*.exe) を実行します。
(筆者の場合は、rubyinstaller-2.0.0-p481-x64.exe)
インストーラーを起動すると「セットアップに使用する言語の選択」ダイアログが表示されます。

スクリーンショット 2014-05-22 07.55.05

「セットアップに使用する言語の選択」ダイアログ


ここは「日本語」のまま、「OK」ボタンをクリックして下さい。

「Ruby 使用許諾契約書の同意」ダイアログが表示されます。

スクリーンショット 2014-05-22 07.55.26

「Ruby 使用許諾契約書の同意」ダイアログ


オプションボタンの「同意」を選択して「次へ」ボタンをクリックすると、「インストール先とオプションの指定」ダイアログが開きます。

スクリーンショット 2014-05-22 08.05.46

「インストール先とオプションの指定」ダイアログ


ダイアログ中の3つのチェックボックス項目についての説明は以下の通りです。内容を読んでチェックボックスのオン/オフを設定して下さい。説明の意味が良くわからない場合はチェックボックスをオンにすることをお勧めします。

  1. Tcl/Tkサポートをインストールします。
    Ruby とともに Tcl/Tk GUI 作成ツールキットをインストールします。 インストールすると、RubyでGUIアプリケーションを作成できます。
  2. Ruby の実行ファイルへ環境変数 PATH を設定する
    どこからでも Ruby を実行できるようにします。
    既に Rubyがインストールされていると競合するかもしれません。
  3. .rb と .rbw ファイルをRubyに関連づける
    ダブルクリックやシェルプロンプトでコマンド名を打つだけで Ruby スクリプトを実行できるようにします。すでに Ruby がインストールされていると競合するかもしれません。

「OK」ボタンをクリックしてインストールを実行するとインストールが開始されます。

スクリーンショット 2014-05-22 08.05.59

「インストール状況」ダイアログ


無事インストールが終了すると「Ruby セットアップウィザードの完了」が表示されます。
スクリーンショット 2014-05-22 08.06.30

「Ruby セットアップウィザードの完了」ダイアログ

ダイアログ内に表示されている参考URLは以下の通りです。

正常にRubyがインストール出来たことの確認

Windowsの「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」でコマンドプロンプトを起動し、プロンプトウィンドウで以下のコマンドを実行して下さい。

> ruby --version

コマンド実行後、インストールしたバージョンが表示されますので、確認してください。

スクリーンショット 2014-05-22 10.07.01

Rubyコマンド実行画面


ここまでで Ruby のインストールは完了です。 それでは、Ruby言語を利用したプログラミングを始めましょう!!(^o^)/

Share Button