ハマったところ・苦労したところ

今回の制作段階でハマったところ、苦労したところを共有できればと思います。

構造としては以下のような簡単な処理です。

ですが、「iCalcreatorクラス」と「Google カレンダー」に悩まされました。

iCalcreatorクラス

WikiPediaでiCalendarを検索すると、紹介されているPHPクラス?ライブラリ?なんですが、これがはじめは便利だと思ったんですが、使ってみると癖があっていい加減自分でやった方がいいんじゃないかって思っていました。

ただ、いくつかのiCal形式を提供しているWebサイトで利用されているので悪いものではないないと思いますし、実際いろんな処理を渡すことができて便利です。

以下にいくつかの苦労点

  • UIDが一意ではない
  • DTSTARTなどの時刻指定にハマる
  • 解決したくとも、みんなスルッと解決されているのか、
    トラブル情報が少なくとも日本語で少ない

UIDが一意ではない

iCalendar形式には1イベントごとに唯一無二のUIDを設定します。
もちろん、iCalcreateorで自動で生成してくれるのですが、実は実行のたび毎回生成するので、UIDが同じイベントでも変わってしまうという問題があります。

これは、もしかしたらiCal.appやOutlook では大丈夫なのかもしれませんが、Googleカレンダーでは正常に認識してくれません。
(これは、あとから気がついたことで、Googleカレンダーがエラーを出力してくれるわけではありません)

実際の処理は
UIDを自分で生成しました。

[イベント開始日時]-[ハッシュ化した開催地]@snicker-jp.info 

と、しました。

イベント開始日時だけだと、開催地次第ではかぶることもあります。
あまりにも安易ですが、これであれば他とかぶることはないと思ったのです。

実際のコード部分

DTSTARTなどの時刻指定にハマる

もともと、海外のライブラリなので、説明に時差の説明がないんで TIMEZONEのプロパティは設定しているけど、開始時間などの時刻指定にも時差分の指定が必要でした。

実際のコード部分

勝手に 「パソナテックイベントカレンダー」 βとは

勝手に 「パソナテックイベントカレンダー」 βをPHPの勉強として、作ってみました。

なぜ、作ってみたのかというところから説明させてください。

主に動機が下記項目です

  • 自分が欲しかった
  • PHPの勉強のため

自分が欲しかった

IT勉強会に私自身がよく参加するのですが、
特にパソナテックさんのイベントクオリティが高いので、参加させていただいています。

スケジュールをGoogleカレンダーで管理していて、そこで一括管理出来たらそのイベント情報を逃さないのではないか?という事で

Googleカレンダーの「PTカレンダー」というのを利用していました。
(間違いかもしれませんが、以前パソナテックさんのページにリンクがあった気がします。)

そのカレンダーが表示されなくなったので、自分で作ってみました。

PHPの勉強のため

最近プログラミングを勉強し始めて、「WebサービスAPI勉強会」というものに参加した際に、

PHPを使いRSSから情報取得して、コンテンツを作成する

というのを学びました。

その発展で、
パソナテックさんの

  • セミナー・イベントページからRSSがあることを知っていた
  • そのRSSにイベント日時が記載されていることを知っていた

ので、それらの情報からカレンダーを作れるのではないか?というのがはじまりです。

次は、実際に作ってみて、ハマったところ・苦労したところを書こうと思います。