カテゴリ

携帯サイト

動画・画像操作

サーバー

初心者向け

役立ちツール

面白技術

デザイン

セキュリティ

その他

アクセス解析

   
  
TrinityT's
2008.10.22
カテゴリ:役立ちツール

RubyでGoogleカレンダーを操作する

RSS

http://doruby.kbmj.com/trinityt_on_rails/files/gcal.JPG

TrinityTです。

約半年ぶりの投稿になってしまいました・・・

今回はRubyでGoogleカレンダーを操作する方法を説明します。

ここではzorioさんが作成したRuby用のGoogleCalendarAPI操作ライブラリを使用しました。

参考URL:http://gcalapi.rubyforge.org/

o- インストール

gemでインストール可能です。

$ gem install gcalapi

o- 使用方法

以下の3クラスを主として使用します。

GoogleCalendar::Event : 予定

GoogleCalendar::Calendar : ユーザのカレンダー

GoogleCalendar::Service : カレンダーサービスへの認証や検索条件を対話的に行う


検索

通常の検索の場合は以下のようにします。


# アカウントメールアドレス
mail = "hoge@gmail.com"
# パスワード
pass = "huga"
# Googleカレンダーの「カレンダー設定」画面から取得した非公開URL
feed = "http://www.google.com/calendar/feeds/hoge%40gmail.com/private-xx.../basic"

srv = GoogleCalendar::Service.new(mail, pass)
cal = GoogleCalendar::Calendar::new(srv, feed)
events = cal.events

events.each do |event|
  p event.title
  p event.desc
end

# 実行結果 > "飲み会" "期間: 2008/08/13 19:00~23:00 \nJST........" "フットサル" "期間: 2008/08/09 09:30~11:30 \nJST........" ....

また、Service.queryメソッドを使うことで取得条件を付加することが可能です。

... srv = GoogleCalendar::Service.new(mail, pass) srv.query(feed, :"max-results" => 5) ...

主な条件

:max-results : 最大取得数

:orderby : 並び替え

:updated-min : 更新日(最古)

:updated-max : 更新日(最新)

:published-min : 登録日(最古)

:published-max : 登録日(最新)

:author : 登録者

新規作成

次に予定の新規作成を行います。


前項で使用した非公開URLは読み取り専用のため、更新可能なURLに置き換える必要があります。

非公開URL(読み取り専用):
 http://www.google.com/calendar/feeds/hoge%40gmail.com/private-xx.../basic
非公開URL(更新可能):
 http://www.google.com/calendar/feeds/hoge%40gmail.com/private/full

mail = "hoge@gmail.com"
pass = "huga"
feed = "http://www.google.com/calendar/feeds/hoge%40gmail.com/private/full"
srv = GoogleCalendar::Service.new(mail, pass)
cal = GoogleCalendar::Calendar::new(srv, feed)
event = cal.create_event
event.title = "ゆっくり"
event.desc = "ゆっくりしていってね!"
event.where = "ゆっくりした結果がこれだよ!"
event.st =  Time.mktime(2008, 12, 24, 0, 0, 0)
event.en =  Time.mktime(2008, 12, 24, 12, 0, 0)
event.save!

実行結果

http://doruby.kbmj.com/trinityt_on_rails/files/gcal.JPG


更新&削除

更新や削除は取得したEventインスタンスに対してupdate,delete(destroy)を実行することで可能です。


# 更新 events = cal.events evnet = events[0] event.title = "Update!" event.update

# 削除 events = cal.events evnet = events[0] event.delete

o- まとめ

本ライブラリを使用することで、他のカレンダーサービスやスケジューラとの連携などのマッシュアップが簡単に可能になると思います。

是非使用してみてはいかがでしょうか!

コメント (0)  |トラックバック (1)

ブックマークに追加する

トラックバック URL

トラックバック一覧

PHP
Ruby [続きを読む] posted from tic-toc.info 2008.10.23 14:14
この記事にコメントをする
ニックネーム:
メールアドレス:
URL:


.

プロフィール

TrinityT
TrinityT
高倉(TrinityT)です。

0x17歳で就職し、組み込み(ICカード)→MFC→大規模金融バッチ系(C++,STF)→金融系Web(JSF+Spring)と来て、2007年に株式会社KBMJに転職。
主にRubyOnRailsとSeaser2でWebアプリ開発に従事。
最近はAndroidアプリにも手を出し始めました。

個人ブログ:TrinityT's LABO

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

KBMJのWebソリューション
Ruby on railsの開発ならKBMJ
株式会社ケイビーエムジェイ