Zend FrameworkでGoogleカレンダー投稿時にメール通知を設定する

意外に日本語の情報が少なく時間がかかった。プログラマ向けリファレンスガイド Zend Frameworkを参考に設定したのでメモ。

終日設定も判りにくいので注意です。

require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
//$user = '';	// ユーザ名 ※私の場合はここは設定ファイルに読み込ませています
//$pass = '';// パスワード
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
// ログイン
$client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);
$gdataCal = new Zend_Gdata_Calendar($client);
// 新規イベントの作成
$newEvent = $gdataCal->newEventEntry();
// イベントの見出し
$newEvent->title = $gdataCal->newTitle( $url . " 更新日");
// イベントの期間
$startDate = $limitdate;	// 開始日時
$startTime = '00:00';		// 開始時刻

//終了日は翌日とセットし終日イベント扱いとする
list($yy, $mm, $dd) = explode('-', $limitdate);
$limitend = strtotime("+1 day", strtotime("$yy/$mm/$dd"));
$limitend = date("Y-m-d",$limitend);

$endDate = $limitend;		// 終了日時
$endTime = '00:00';		// 終了時刻
$tzOffset = '+09';		// タイムゾーンを日本に設定
	
$when = $gdataCal->newWhen();
//$when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
//$when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
$when->startTime = "{$startDate}";
$when->endTime = "{$endDate}";

$newEvent->when = array($when);

//メール通知設定
$reminder = $gdataCal->newReminder();
$reminder->method = "email";
$reminder->days = "7";		//minutes、hours、daysを指定
// 既存のイベントの when プロパティにリマインダーを適用します
$when = $newEvent->when[0];
$when->reminders = array($reminder);

// イベントの説明
$newEvent->content = $gdataCal->newContent( SITENAME . "更新日設定");
// イベントの場所
$newEvent->where = array($gdataCal->newWhere(""));

// イベントをカレンダーへ反映
$createdEvent = $gdataCal->insertEvent($newEvent);
Both comments and pings are currently closed.

Comments are closed.