2007/5/29 火曜日

iCalcreatorとGoogleカレンダー

Filed under: 技術メモ — dev0000 @ 1:30:55 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

PHPライブラリiCalcreator出力のiCalデータだと、Googleカレンダーにそのままコンバートできない気がする。

「METHOD:PUBLISH」をちゃんと出力していないとか、「VTIMEZONE」の「DTSTART」の記述手段が違うとかそういうところで。
どちらがRFC的にどちらか正しいのかは不明だけども、Googleカレンダーは結構細かなパラメータまでチェックするようだ。

それと iCalcreatorの場合、「VEVENT」の「UID」はこんな感じで生成されるっぽい。

PHP:
  1. function _makeUid() {
  2.     $unique = null;
  3.     $base   = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPrRsStTuUvVxXuUvVwWzZ1234567890';
  4.     $start  = 0;
  5.     $end    = strlen( $base ) - 1;
  6.     $length = 10;
  7.     $str    = null;
  8.     for( $p = 0; $p <$length; $p++ ) {
  9.       $basePos = mt_rand( $start, $end );
  10.       $unique .= $base{$basePos};
  11.     }
  12.     if( empty( $this->unique_id ))
  13.       $this->_makeUnique_id();
  14.     $this->uid['value'] = date('Ymd\THisT').'-'.$unique.'@'.$this->unique_id;
  15.   }

よく考えたら、「同じイベントの場合、同じUIDを使用しなければならない」ハズで、毎回バラバラの値を生成するというわけにはいかない。
なので、ここも何とかする必要がある。

ってか、ライブラリを使わずに変換処理を書いてしまったほうが早そう。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

HTML convert time: 0.451 sec. Powered by WordPress ME