desknet's の iCal 連携がイマイチな件
desknet's の iCal 連携機能( http://www.desknets.com/product/addon/iphone/ical.html )を試しているのだけど、正直イマイチ。
何がイマイチかというと、接続用のURLがこういう形式なんです。
http://サーバー名またはIPアドレス/cgi-bin/dnet/dnical.cgi?userid=ログインID&_word=パスワード
IDとパスワードは、それぞれ現物の情報を記述しなければならないです。できれば、Googleカレンダーの限定公開URLのように、現物の認証情報を使用せずに参照できるとありがたいんですがねえ。
というわけで、iCal連携のCGIに対する wrapper を自分で実装してみました。
実装した処理はつぎの2つ。
- UUIDを生成し、あるログインID + パスワードの組に対して紐づける処理。
- UUIDに対応するログインID + パスワードを用いてiCal連携を呼び出し、得られた結果をクライアント側に返す処理。
これを用いることで、スケジュールをiCal形式でダウンロードするときに、生の認証情報を含むURLを使用する必要がなくなりました。
(2010/08/10 追加)
これで得られるメリットですが、社内の他のユーザに、自分のスケジュールを iCalender 形式で開示する際に、生の認証情報を出す必要がなくなります。もちろん、他のユーザから、その方のスケジュール情報閲覧用のURLを教えてもらうことだってできます。
そうすると、iPhone等のカレンダーアプリにて、自分のスケジュールの他に、同じチームのスタッフのスケジュールも気兼ねなく閲覧することができるようになりました。
(2010/08/10 追加おわり)
さらに、せっかくなのでついでの作業として、iCal形式のデータを、iスケジュール(iコンシェルのスケジュール形式)に変換するフィルタも加えてみました。
こうすることで、desknet's のスケジュールデータを次のクライアントで、生の認証情報を用いることなく閲覧できるようになりました。
- iPhone/iPad/iPod touchのカレンダーアプリ
- MacOS X のiCal
- Thunderbird の Lightning
- iコンシェル対応のdocomoの携帯電話
- その他のiCalender対応クライアント
ニーズがありそうなら、そのうちソースをのっけますが、本当はこのような類の処理は desknet's 側で正式対応してほしい機能ですね。
なお、iコンシェル対応携帯電話での閲覧は、一応できるようになりましたが、使い勝手としては、かなりダメです。
勝手サイトで提供されるスケジュールは自動更新させることができないし、手作業でダウンロードすると、以前にダウンロードした内容を更新するのではなく、別管理になってしまうので、古いiスケジュールを別途消去させる必要があります。