やかんブログ

[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)ができるようになりました。次回はこれらを使って、簡単なサンプルを作成してみたいと思います。

この記事に関するお問い合わせはこちら

ページの先頭へ