2011年12月29日木曜日

GData API を利用して Google カレンダーに予定を登録する

前回は Google ドキュメントのスプレッドシートに対して操作してみたので、次はカレンダーに予定を登録してみます。

GCal1

利用するライブラリは前回同様 ver 1.9 を利用します。参照設定を行うのは、

  • Google.GData.Client
  • Google.GData.Extensions
  • Google.GData.Calendar

の 3 つとなります。後でわかったのですが、今回のロジックでは API Ver 2 のものでしてそのうち利用できなくなるとのことです。Ver 3 は別エントリで書いてみます。

基本的なロジックの流れはスプレッドシートの時と同様で、利用するクラスが異なるくらいです。なのでいきなりロジックから掲載します。

   1: Const usr = "" 'アカウント
   2: Const pas = "" 'パスワード
   3: Const APP_NAME = "Sample Google Calendar"
   4: '自分のカレンダー取得用 Uri
   5: Const OWN_CALENDAR = "https://www.google.com/calendar/feeds/default/owncalendars/full"
   6: '自分のカレンダー設定用 Uri
   7: Const POST_CALENDAR = "https://www.google.com/calendar/feeds/" + usr + "/private/full"
   8:  
   9: 'ログイン認証を行う
  10: Dim clService As New CalendarService(APP_NAME)
  11: clService.setUserCredentials(usr, pas)
  12: '新規に予定を作成
  13: Dim newEntry As New EventEntry
  14: newEntry.Title.Text = "アプリからの予定登録"
  15: newEntry.Content.Content = "アプリから予定を登録してみる"
  16: '場所の設定
  17: Dim newWhere As New Where With {
  18:     .ValueString = "予定実施場所"
  19: }
  20: newEntry.Locations.Add(newWhere)
  21: '日時の設定
  22: Dim newTime As New [When] With {
  23:     .StartTime = DateTime.Parse("2012/1/1 12:00"),
  24:     .EndTime = DateTime.Parse("2012/1/1 14:00")
  25: }
  26: newEntry.Times.Add(newTime)
  27: 'カレンダーに予定を登録
  28: clService.Insert(New Uri(POST_CALENDAR), newEntry)

記載されているコメントをみていただけるとわかると思いますが、非常に簡単です。これを実行するとカレンダーに予定が追加されます。なお、実際には予定を登録する Insert メソッド呼び出しにて、処理ステータスが返却されますのでその値に基づいた処理が必要になります。

GCal2

実行するとこのように予定が追加されます。

GCal3

詳細情報を確認するとこのように、アプリにて設定された内容が確認できると思います。他にも EventEntry クラスのプロパティを操作する事で、終日の予定とかも設定できます。

このように非常に簡単に Google カレンダーも操作できますので、連携するアプリを作るのもかなり簡単にできるのではないでしょうか。

0 件のコメント:

コメントを投稿