Google Calendar API v2でredirectされる場合が出てきた
たぶんv2なんだけど、よく分かってない。
今回の話はRubyで、使っているライブラリは
です。
リンク先は fork した自分のリポジトリで、こっちで redirect に対応しましたという話。
自分は Android にカレンダーの「参照」機能がないことに困って1wtnabe/ical2gcal で RTM のイベント(iCal)を Google カレンダーに取り込んでスマホなどから確認できるようにしているんだけど、これの転送に一昨日くらいから急に失敗するようになってきた。(実際には以前から毎回必ずうまく動くわけではないんだけど、現実的に困らない程度には同期が取れる状態になっていたのに、それがまともに同期できなくなった。)
で、とりあえず手動で動かしてみると Moved Temporarily ってエラーが返ってきてる。これを確認したところで Twitter に投げておいたら
@wtnabe gcalapiのevent.rb の中で insertしている所で、ret.codeが302だったら ret.body中のhrefを使って再度insertするようにしたらうまく動いたよ。
— 井澤 Dishonored ゆきみつ (@Yukimitsu_Izawa) December 13, 2013
こんな返事をもらったので、
- gcalapi を fork して修正
- gcalapi を利用している ical2gcal の方は依存ライブラリの URL を変更
てな感じで対応しました。
とりあえず Bundler で使っている場合は
gem 'gcalapi', :git => 'https://github.com/wtnabe/gcalapi'
ってしとくと 0.1.2r (redirect対応)が入ってなんとか動くようになります。ical2gcal はこれを利用するように変更して新しい gem を push しておきました。
本当は pull-req した方がいいんだろうけど、すでに github 上の repos と rubygems.org の gem は作者が合ってなくて、どこに push しても変わらんかなという気がしたので、fork したものを Bundler で使うようにしちゃいました。
どうせ Google Calendar API v3 に移行しなくちゃいけないので、そのうち gcalapi は使わないように変更しなきゃなー。(と、実は1年くらい思っている。)
※ インフルエンザの予防接種受けたので酒が飲めなかったおかげで思わず 昨日はだらだらコード書いて夜更かししてしまった。
iOSには大昔からある ↩