mixi にはマイミクの誕生日やコミュニティのイベント、予定などを一覧できる予定表があります。 私の場合、普段のスケジュール管理にはGoogle Calendarを使っているので、できればどちらかに統合したいと思っていました。
Google Calendar は外部のスケジュール情報をiCalendarと呼ばれるフォーマットで読込むことができます。そこでこの mixi 予定表の内容を iCalendar 形式に変換する Perl スクリプトを書いてみました。
mixiの予定カレンダーをiCal形式に変換するコンバータとか無いのかやマイミクの誕生日をGoogle Calendar用のiCalデータにするを読んで、随分と前に作ろう作ろうとは思って居たのですが…ようやく完成。 勢いでドバーッって作らないとダメっぽいです(´・ω・)ゞ
難しいところは特に無く、mixi 予定表ページの取得と解析には WWW::Mixi モジュール のお世話になりっぱなし、見よう見まねで適当に iCalendar データをでっち上げ(?)ています。iCalendar のフォーマットについてはRDFカレンダー:イベント情報の公開と活用が大変参考になりました。
このソフトウェアパッケージの内容については完全に無保証です。このソフトウェアパッケージの使用により生じた損害・障害の責を作者は一切負わないものとします。このソフトウェアパッケージの配布や改変に関する条件は The Artistic License に準じるものとし、これに従う限り自由にすることができます。
This code is released under the Artistic License. The terms of the Artistic License are described at http://www.perl.com/language/misc/Artistic.html
導入前に幾つかの設定が必要です。ダウンロードしたアーカイブに含まれる mixi2ical.cgi をエディタで開きます。20 〜 30 行付近にある次の行を適切に書き換えた後、保存しなおしてください。
ファイルの文字コードは EUC-jp、改行コードは LF です。
;### CGI として動作させる場合、0 以外に use constant WORK_AS_CGI => 1; ;### mixi のアカウント設定 use constant MIXI_MAILADDR => 'ここにあなたの mixi ログインアカウント'; use constant MIXI_PASSWORD => 'ここにあなたの mixi ログインパスワード'; ;### スケジュールを取得する月数。1 以上。 ;### 3 だったら今月、来月、再来月分を取得する。 use constant MONTHS => 3;
標準では予定、マイミクの誕生日、参加予定のイベントを取得しますが、 参加予定のないイベントは取得しません。必要に応じてこれらの項目を取得する/しないを設定できます。95 〜 100 行付近にある次の行を編集してください。
my $callbacks = { 'i_sc-.gif' => { name => '予定', func => &iCalSchedule }, 'i_bd.gif' => { name => '誕生日', func => &iCalBirthday }, 'i_iv1.gif' => { name => '参加イベント', func => &iCalEventBooked }, # 'i_iv2.gif' => { name => 'イベント', func => &iCalEvent }, };
CGI として動作させる場合は、Web サーバにアップロード後、実行パーミッションを与えておきます。コマンドラインから実行する場合には、iCalendar データが標準出力(STDOUT)に出力されるので、ファイルにリダイレクトするなどして Google Calendar からインポートします。
mixi2iCal をダウンロードできます。
mixi2iCal
![]() ver.0.10, '06/09/10, 0, Perl
|
寄せられたコメント (全 5 件中、最新 5 件まで表示しています)
開発はストップしてるんでしょうか。
使えると便利なんですが更新予定はないですか?
が、まだぜんぜん使えておりません。
perl mixi2ical > schedule.ics
とすると、ガリガリと何か処理してくれるのですが、
いざグーグルカレンダーに食わせると0件で処理しました、と
出てしまいます。
webserver httpd1.42p
perl activeperl
www::mixiの最新バージョンをperllibwwwのなかに入れています。
なにか簡単なアドバイスでもいただけると助かります。
とっても便利そうなので利用させてもらいました!
ただ、同じ日の誕生日の人が複数いる場合は、
一番上に表示されている方の名前しか取得してもらえません。
同じ誕生日の人の名前を複数取得することは可能ですか?
WWW::Mixiは最新バージョンをご利用くださいませm(_^_)m
http://bb.watch.impress.co.jp/cda/news/15453.html
日本語化されて更に便利になってましたヽ(´ー`)ノ