GoogleカレンダーがIE6で使えなくなりました。使えないことはないのですがレイアウトがグチャグチャ。
そこで予定を追加する別の方法を探してみました。
見つかったのが次のページ。
PHP アプリケーションから Google カレンダーを利用する
とても詳しく書いてあります。
これを自分なりに解釈して簡略化してみました。
Zendをインストール
Zendというフレームワークを使います。
次のサイトからダウンロードします。
Zend Framework: Downloads: Downloads(http://framework.zend.com/download/gdata)
Latest – Downloads – Zend Framework
「Zend_Gdata(Version 1.12.0;released 2012-08-27)」にあります。解凍し、「library」の中の「Zend」が使うフォルダです。※2012年9月9日追記。
解凍して、後述するプログラム本体(PHPファイル)と同じフォルダに「Zend」というフォルダを作り中身をまるごと入れておきます。
プログラム本体
次がプログラム本体です。
実際にはフォームを使うのでしょうが、簡略化してあります。
ページを開くと、ここに書かれたタイトル、開始時刻、終了時刻、場所がイベントとして追加されます。
イベントを追加する関数
次がイベントを追加する部分です。
$userと$passに自分のGmailのアドレスとログインパスワードを書いておきます。
function gcal_add_event($title,$start_datetime,$end_datetime,$place){
//自分のGmailアドレスとログインパスワード
$user = "xxxxx@gmail.com";
$pass = "xxxxx";
//クラスをロード
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
Zend_Loader::loadClass('Zend_Http_Client');
//サービスに接続
$gcal = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $gcal);
$gcal = new Zend_Gdata_Calendar($client);
//日付時刻をATOM形式に
$start = date(DATE_ATOM, $start_datetime);
$end = date(DATE_ATOM, $end_datetime);
//イベントを作成し追加
try {
$event = $gcal->newEventEntry();
$event->title = $gcal->newTitle($title);
$when = $gcal->newWhen();
$when->startTime = $start;
$when->endTime = $end;
$event->when = array($when);
$event->where = array($gcal->newWhere($place));
$gcal->insertEvent($event);
} catch (Zend_Gdata_App_Exception $e) {
print "エラー: " . $e->getResponse();
}
print "イベントを追加";
}
//自分のGmailアドレスとログインパスワード
$user = "xxxxx@gmail.com";
$pass = "xxxxx";
//クラスをロード
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
Zend_Loader::loadClass('Zend_Http_Client');
//サービスに接続
$gcal = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $gcal);
$gcal = new Zend_Gdata_Calendar($client);
//日付時刻をATOM形式に
$start = date(DATE_ATOM, $start_datetime);
$end = date(DATE_ATOM, $end_datetime);
//イベントを作成し追加
try {
$event = $gcal->newEventEntry();
$event->title = $gcal->newTitle($title);
$when = $gcal->newWhen();
$when->startTime = $start;
$when->endTime = $end;
$event->when = array($when);
$event->where = array($gcal->newWhere($place));
$gcal->insertEvent($event);
} catch (Zend_Gdata_App_Exception $e) {
print "エラー: " . $e->getResponse();
}
print "イベントを追加";
}
コメント