ruby: 2009年1月アーカイブ

あけましておめでとうございます。あんまり正月とか関係なしに淡々と開発しております。
年末年始に外出すると混むんだもん。

で、メイドめーるでデフォルト以外のGoogleカレンダーの情報がとれない件。

googlecalendar.PNG Googleカレンダーでは、こうやって複数のカレンダーをまとめて表示させることが出来るのですけど、メイドめーるがメールしてくれるのは一番上のものだけになっております。
なんでかというと、Googleカレンダーにアクセスするのに使っているgcalapiで、カレンダーリストを取得するAPIがみつからなかったからです。

正確に言うと、ユーザー名とパスワードを使ったらとれるのですけど、なぜかAuthSub認証の場合だけ実装されていないのです。
Googleのドキュメントを見たら、取得する方法があるみたいなので、コードを追加してみました。
module GoogleCalendar
  class ServiceAuthSub
    CALENDAR_LIST_PATH = "http://www.google.com/calendar/feeds/default/allcalendars/full"

    # get the list of user's calendars and returns http response object
    def calendar_list
      logger.info("-- get_calendar_list_responce st --") if logger
      auth unless @auth
      uri = URI.parse(CALENDAR_LIST_PATH)
      res = do_get(uri, {})
      logger.info("-- get_calendar_list_responce en(#{res.message}) --") if logger
      res
    end

    alias :calendars :calendar_list
  end  
end
これだけ実装してあげれば、あとは通常認証と同じコードが働くので、こんなふうにして複数のカレンダーを取ってくることが出来ます。
require 'gcalapi'
require 'googlecalendar/service_auth_sub'
require 'googlecalendar/calendar'

srv1 = GoogleCalendar::ServiceAuthSub.new(user.calendarToken)
cal_list1 = GoogleCalendar::Calendar.calendars(srv1)

出来ればこのコード、本家に取り込んでいただけるとみんな幸せになるように思うのですけど。連絡つくかな?


このアーカイブについて

このページには、 2009年1月 以降に書かれたブログ記事のうち ruby カテゴリに属しているものが含まれています。

前のアーカイブは ruby: 2008年12月 です。

次のアーカイブは ruby: 2009年4月 です。

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

Powered by
Movable Type