[PHP]Zend Google Data Client Libraryで gCal APIs を使う[その7]
2007年10月11日(木)16:37|那須
那須です
前回までは、Zend GData CL で Google Calendar APIs を用いる際に中心となる ZendGdataCalendarクラスを見てきました。今回からは、予定(カレンダーイベント)に対応するクラス Zend_Gdata_Calendar_EventEntryクラスについて説明したいと思います。
オブジェクト生成
下記のように、クラス名を指定して、直接 new することもできますが
$event = new Zend_Gdata_Calendar_EventEntry();
Zend_Gdata_Calendarオブジェクトの NewEventEntry()メソッドを使い、下記のようにオブジェクトを生成することも可能です。
$event = $gCal->NewEventEntry();
いずれも生成されるものは同じですが、下記のほうがクラス名を意識しない分、使いやすいと思います。
イベントの編集
イベントの編集は、インスタンスの内容を変更し、最後に save()メソッドを呼び出すことで、実行されます。
#…はずなのですが、save()メソッドを実行しようとすると、Googleからエラーが戻ってきます。おそらく使い方が間違っていると思いますが、理由を調査中です。
$calFeed = $gCal->getCalendarEventFeed($eventQuery); foreach ($calFeed as $event) { if ($event->title == ‘test’) {} }$event->save();
イベントの削除
イベントの削除には delete() メソッドを使います。下記の例は、イベントの一覧を取得し、”test” というタイトルのイベントを削除するというものです。
$calFeed = $gCal->getCalendarEventFeed($eventQuery); foreach ($calFeed as $event) { if ($event->title == ‘test’) {} }$event->delete();
もう1つの方法は、ZendGdataCalendarクラスの delete()メソッドを使う方法です。この場合、メソッドの引数には、削除するイベントの編集用URLを渡します。
$calFeed = $gCal->getCalendarEventFeed($eventQuery); foreach ($calFeed as $event) { if ($event->title == ‘test’) {} }$gCal->delete($event->getEditLink()->href);
後者は、単に構文が長くなるだけなので、私は普段は使っていません。別の形で編集用URLを知る場合に利用するのかもしれませんが、今のところ使い道はわかりません。
まとめ
ここまでで、イベントの作成/読込/変更/削除(CRUD)ができるようになりました。次回はこれらを使って、簡単なサンプルを作成してみたいと思います。