[ruby]gcalapiを使ってAuthSubログイン

photo by Martin LaBar

 昨日はすっごいがんばって自前でGoogleAuthSub認証を通すコードを書いたのですが。
今日、続きでカレンダーを扱おうとしたら、gcalapiに同じ内容のコードがあるのを発見してしまいました。
しかもこっちの方が明らかにきれいです。だったら最初からこっちでよかったんじゃん。

再発明しちゃった車輪をもてあそびつつ、gcalapiでAuthSub認証を使う方法を記述しておきます。

Googleの認証ページ用のURLを生成する

require 'gcalapi'
require 'googlecalendar/auth_sub_util'
@uri = GoogleCalendar::AuthSubUtil.build_request_url(
'http://www.example.com/responce',
'http://www.google.com/calendar/feeds/',
false, #use_secure
true #use_session
)

Googleから戻ってきたトークンをつかってセッショントークンをもらう

authsub_token = ''
one_time_token = params[:token]
session_token = GoogleCalendar::AuthSubUtil.exchange_session_token(one_time_token)

戻ってきたページのURLからワンタイムトークンを取り出すためにget_one_time_tokenというメソッドも用意されているのですが、railsであればparams[:token]でとる方がずっと早いですね。

セッショントークンをつかってカレンダーに予定を書き込む

require 'gcalapi'
require 'googlecalendar/auth_sub_util'
require 'googlecalendar/service_auth_sub'

server = GoogleCalendar::ServiceAuthSub.new(session_token)
calendar = GoogleCalendar::Calendar.new(server, 'http://www.google.com/calendar/feeds/default/private/full')
event = calendar.create_event
event.st = Time.parse("2008-09-19 20:00:01")
event.en = Time.parse("2008-09-19 22:00:01")
event.title = "実験!"
event.desc = "こんにちはこんにちは! "
event.save!

あとは基本的に、GoogleCalendar::Service の代わりにGoogleCalendar::ServiceAuthSubを使えばいいらしい。calendar_listが動かないのはしょうがないのかなぁ。

カテゴリ:

トラックバック(0)

このブログ記事を参照しているブログ一覧: [ruby]gcalapiを使ってAuthSubログイン

このブログ記事に対するトラックバックURL: http://mogya.com/mt/mt-tb.cgi/639

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、 もぎゃが 2008年9月19日 21:18に書いたブログ記事です。

ひとつ前のブログ記事は「 [ruby]GoogleAuthSubを使う 」です。

次のブログ記事は「 不要なところは削除してやりたい放題できる『編集』 」です。

最近のコンテンツは インデックスページ で見られます。過去に書かれたものは アーカイブのページ で見られます。

Powered by
Movable Type