12.6. Google Calendar の使用法
前のページ | 第12章 Zend_Gdata | 次のページ

## 12.6. Google Calendar の使用法

Zend_Gdata_Calendar クラスを使用して、オンラインの Google Calendar サービスでイベントの閲覧、作成、更新、 そして削除が行えます。

Google Calendar API についての詳細な情報は http://code.google.com/apis/calendar/overview.html を参照ください。

### 12.6.1. Google Calendar への問い合わせ

閲覧したいカレンダーの所有者を `setUser()` メソッドで指定します。指定する値は文字列で、一般的には Google Calendar のユーザアカウントとなります。 グループのカレンダーを指定することもできます。

    <?php
    $gdataCal = new Zend_Gdata_Calendar();

    // Google の開発者のの公開カレンダーを取得します
    $gdataCal->setUser('developer-calendar@google.com');
    $feed = $gdataCal->getCalendarFeed();
    ?>

このオブジェクトの使用法についての詳細は、 Zend_Feed のドキュメントを参照ください。

ユーザを指定しなかった場合のデフォルトは "default" となります。認証済みの Http クライアントを使用している場合は、 その Google アカウントに関連付けられたカレンダーがデフォルトになります。

    <?php
    $gdataCal = new Zend_Gdata_Calendar($authenticatedHttpClient);

    // 現在のユーザのカレンダーを取得します
    $myCalendarFeed = $gdataCal->getCalendarFeed();
    ?>

#### 12.6.1.1. イベントの表示

`setVisibility()` メソッドによって、 フィードから返されたエントリを一般に公開するか プライベートエントリにするかを設定できます。 プライベートエントリは、認証済みの Http クライアントでアクセスした場合にのみアクセス可能となります。 デフォルトは "public" です。

    <?php
    $gdataCal = new Zend_Gdata_Calendar($authenticatedHttpClient);

    // 自分のイベントを、他の人も閲覧できるようにします
    $gdataCal->setVisiblity('public');
    $feed = $gdataCal->getCalendarFeed();
    ?>

#### 12.6.1.2. イベントデータの表示

`setProjection()` メソッドを使用して、 フィードにどれだけの情報を返すかを指定します。 たとえば "full" を指定すると、 カレンダーのイベントの全プロパティが含まれますが、 エントリに対するコメントは含まれません。 "composite" は "full" と似ていますが、 フィードエントリの中にコメントのフィードが含まれます。 その他指定可能な値についての情報は Google Calendar API のドキュメントを参照ください。 デフォルト値は "full" です。

    <?php
    $gdataCal = new Zend_Gdata_Calendar();

    // johndoe のカレンダから最小限の情報を取得します
    $gdataCal->setUser('johndoe@gmail.com');
    $gdataCal->setProjection('free-busy');
    $feed = $gdataCal->getCalendarFeed();
    ?>

#### 12.6.1.3. イベントの日付

`setStartMin()` メソッドおよび `setStartMax()` メソッドで、カレンダーのイベントの日付の範囲を指定します。 `startMin` を指定すると、 それより前の日付のイベントはフィードに含まれません。 同様に、`startMax` で指定した日付より後の日付のイベントもフィードに含まれません。

    <?php
    $gdataCal = new Zend_Gdata_Calendar($authenticatedHttpClient);

    // 12/1 より後のイベントのみを取得します
    $gdataCal->setStartMin('2006-12-01');
    $feed = $gdataCal->getCalendarFeed();
    ?>

#### 12.6.1.4. List calendars

`getCalendarListFeed()` メソッドを使用して、 現在認証済みのユーザに関連するカレンダーの一覧のフィードを取得します。 このフィードを取得するには、認証済みの Http クライアントを使用する必要があります。

    <?php
    $gdataCal = new Zend_Gdata_Calendar($authenticatedHttpClient);
    $myCalendars = $gdataCal->getCalendarListFeed();
    ?>

### 12.6.2. Google Calendar への投稿

新しいイベントを自分のカレンダーに投稿するには `post()` メソッドを使用します。 Google Calendar API のドキュメントのガイドラインにもとづいた XML 定義でイベントエントリを作成し、その XML を投稿します。 この操作を行うには、認証済みの Http クライアントを使用する必要があります。

    <?php
    $gdataCal = new Zend_Gdata_Calendar($authenticatedHttpClient);

    $xmlString = <<<XML
    <entry xmlns='http://www.w3.org/2005/Atom'
        xmlns:gd='http://schemas.google.com/g/2005'>
      <category scheme='http://schemas.google.com/g/2005#kind'
        term='http://schemas.google.com/g/2005#event'></category>
      <title type='text'>Tennis with Beth</title>
      <content type='text'>Meet for a quick lesson.</content>
      <author>
        <name>Jo March</name>
        <email>jo@gmail.com</email>
      </author>
      <gd:transparency
        value='http://schemas.google.com/g/2005#event.opaque'>
      </gd:transparency>
      <gd:eventStatus
        value='http://schemas.google.com/g/2005#event.confirmed'>
      </gd:eventStatus>
      <gd:where valueString='Rolling Lawn Courts'></gd:where>
      <gd:when startTime='2006-04-17T15:00:00.000Z'
        endTime='2006-04-17T17:00:00.000Z'></gd:when>
    </entry>
    XML;

    $xml = new SimpleXMLElement($xmlString);

    $gdataCal->post($xml->asXML());
    ?>

前のページ | 上に戻る | 次のページ
12.5. Google Blogger の使用法 | ホーム | 12.7. Google CodeSearch の使用法