特集 ニュース コラム Plug-in・カスタム関数 関連製品・サービス 書籍
活用事例 コミュニティ・リンク 人材募集
 
Perlモジュールを活用してFileMakerProからblogを更新する(Windows編)

はじめに

  これまで、MacOSX+FileMakerで面白いことができるということをご紹介してきました。これを見て「Windowsじゃできないのか!」とお嘆きの方もいらしたかもしれません。 もちろんWindowsでだってできるのですよ。ものによってはいくつか方法が考えられると思います。
今回は、「Perlモジュールを活用してFileMakerProからblogを更新する」をWindows上でやってみましょう。
FileMakerとあまり関係がない話もたくさん出てきますが、一回設定をすると、何度も使えておいしかったりしますので。どうぞ最後までおつきあいください。

方法1:Windows上で擬似的Unix環境をつくる---Cygwinのインストール

まずは、Windows上に擬似的なUnix環境を移植して、MacOSXで行った作業と同じことを実行する、という方法が考えられます。
Unixコマンドの移植方法はいくつかありますが、ここでは簡単に統合的な環境をつくることができるCygwinをインストールしてみます。 CygwinはGNUの開発ツールを含む、UNIXのさまざまなフリーソフトウェアをWindowsに移植したものです。

まずhttp://cygwin.com/からインストーラをダウンロードします。
インストーラ(setup.exe)をダブルクリック起動すると、インストールの方法、インストールするモジュールをきかれますので、インストールしたいものを選択していきます。(選択するとステータスが「install」に変わっていきます)
※perlとgcc、shは必要ですので必ずインストールしてください。

cygwinのホームディレクトリはデフォルトではC:¥cygwin¥homeとなります。
C:¥cygwin¥cygwin.bat を起動すると、Unixのシェル同様のウィンドウが開きます。
ここで以下のコマンドを実行します。

$perl -MCPAN -e shell (ここでプロンプトがCPAN>にかわります)
CPAN>install WWW::Mechanize


これでWWW::Mechanizeのソースファイルをダウンロードしてきて、コンパイルする一連の作業が実行されます。
※プロキシの設定やファイアウォールの設定をしている場合事前に解除しておく必要がありますので注意してください。

※アプリケーションの関連づけ
サンプルファイル内の「アップロード」スクリプトでdiary_up.shをcygwinから呼び出す必要があるのですが、Windowsの拡張子とアプリケーションの関連付けで .shファイルをC:¥cygwin¥bin¥bash.exe に関連づけておくと、.shファイルをFileMakerから呼び出すだけでshell scriptを実行できるようになります。

方法2:ActivePerlのインストール

Windowsで使えるPerlは何種類かありますが、ここではActivePerlを使うことにします。
ActivePerlは以下のサイトからダウンロードすることができます。
http://www.activestate.com
msiファイルをダウンロードしてダブルクリックします。インストーラの手順にしたがって、インストールしてください。
※インストールしたディレクトリにパスを通すか途中で聞かれますので、必ず通すようにしてください。
インストールが終わったら、コマンドプロンプトを起動して、

C:¥> perl -v

とタイプしてみてください。インストールが成功していればバージョンなどの情報が表示されます。
インストールが終わると、ヘルプページが起動します。
英語が苦手な方はWeb検索で ActivePerlの使い方を検索するとよいかもしれませんね。

■ Perlモジュールをセットアップする

ActivePerlの場合、PPMを使うと非常に簡単にモジュールをインストールできます。 ※インターネットに直接モジュールを探しに行くので、プロキシの設定がされている  環境、ファイヤウォールの設定をされている環境では注意してください。 コマンドプロンプトで以下をタイプします。


C:¥>ppm install WWW-Mechanize-Shell


PPMを使ったインストール方法についてはここでは詳しくは説明しません。以下のURLなどご参考まで。
http://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%2F%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB(PPM)

※2005年3月現在でPPMでインストールできるバージョンが古かったため、ここではCPANを使ってインストールすることにします。 CPANでのインストールについては、上記Cygwinを使った場合と同様ですが、別途コンパイラのインストールが必要になります。

■ nmakeのインストール

フリーで配布されているコンパイラは数種類ありますが、ここではnmakeを使うことにします。
まず、インストーラを以下のサイトからダウンロードします。
ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
ダウンロードしたファイルを展開するとnmake.exeが作成されます。
C:¥nmake など任意のフォルダ内に展開して、必ずこのフォルダのパスを環境変数に登録してください。

あとはcygwinの場合同様に

C:¥>perl -MCPAN -e shell 
CPAN>install WWW::Mechanize


と入力するとインストールを開始します。 ※CPANの初回起動時にmakeほか、アプリケーションのパスを問われますので、nmakeをインストールしたフルパスを指定します。
不要なアプリケーションはスキップしてもかまいませんが、makeのパスは必ず指定してください。
(CPANの設定内容は、C:¥Perl¥lib¥CPAN¥Config.pmに記録されていますのであとから編集することもできます)

 インストールが終わったら一応確認です。ターミナルで下記のコマンドを実行してみて下さい。

C:¥>perl -MWWW::Mechanize -e 'print $WWW::Mechanize::VERSION,"¥n"'


実行後「1.10」等というバージョン名が出たらモジュールは正常にインストールできています。
(表示されるバージョンナンバーは2005/03/15現在)。

文字コードの置換

FileMakerのテンプレートからエクスポートした日記タイトルと本文はShift-JISですが、このままこのデータを投稿すると文字化けしてしまいますので、 EUCに変換します。文字コードを変換する方法はいくつかあります。
ここではperlにデフォルトで用意されているモジュールを使います。
C:¥>perl -Mencoding=shiftjis,STDOUT,euc-jp -pe1 < body.txt >diary_body.txt


のようにすると、Shift-JISのbody.txtを diary_body.txtに変換することができます。
今回はbody,subをそれぞれ書き換えてさらにアップロードするdiary.sh(Mac/cygwin版)の代わりに diary.batというバッチファイルを作成し、 それを「Eventを送信」スクリプトステップを使って呼び出すことにしました。
サンプルファイルからスクリプトを実行する際に「アップロード(ActivePerl版)」を実行してみてください。
ほかに、Windowsへの移植版のiconvを使う方法(ダウンロードhttp://www.kaoriya.net/)や、WSHを使う方法(http://www.atmarkit.co.jp/fwin2k/win2ktips/312charcode/charcode.html)など、いろいろ考えられると思います。ご自分のやりやすい方法を選んでみてくださいね。

[2005/03/15]
[有限会社ジェネコム 村上ゆりか]

◆関連リンク

FMPro.jpについて |  利用規約 |  ポリシー |  お問い合わせ