PHPを使ってGoogleカレンダーにイベントを追加する

Pocket

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」というフォルダを作り中身をまるごと入れておきます。

プログラム本体

次がプログラム本体です。
実際にはフォームを使うのでしょうが、簡略化してあります。
ページを開くと、ここに書かれたタイトル、開始時刻、終了時刻、場所がイベントとして追加されます。

$title="打合せ";
$start_datetime=mktime(10,30,0,9,15,2011);//2011年9月15日10時30分
$end_datetime=mktime(11,30,0,9,15,2011);//2011年9月15日11時30分
$place="第三会議室";
gcal_add_event($title,$start_datetime,$end_datetime,$place);

イベントを追加する関数

次がイベントを追加する部分です。
$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 "イベントを追加";
}

[ 2011年9月12日 | カテゴリー: PHP | タグ: , , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報