スキップしてメイン コンテンツに移動

未解決:Google Calendar APIの結果にwhenが含まれないことがある

Google Calendar API で、期間指定してイベント検索していたら(↓リクエストURL例)
https://www.google.com/calendar/feeds/***********group.calendar.google.com/private/full?start-min=2011-12-28T15:00:00Z&start-max=2011-12-29T14:59:00Z&alt=jsonc

普通はこういう結果が返ってくるところ
    [{"kind"=>"calendar#event",
     "id"=>"h9olon8cq28c18uood6uan6a30",
     "selfLink"=>"...",
     "alternateLink"=>"...",
     "canEdit"=>true,
     "title"=>"test #notice",
     "created"=>"2011-12-28T19:16:31.000Z",
     "updated"=>"2011-12-28T19:16:31.000Z",
     "details"=>"",
     "status"=>"confirmed",
     "creator"=>{"displayName"=>"******@gmail.com",
     "email"=>"******@gmail.com"},
     "anyoneCanAddSelf"=>false,
     "guestsCanInviteOthers"=>true,
     "guestsCanModify"=>false,
     "guestsCanSeeGuests"=>true,
     "sequence"=>0,
     "transparency"=>"opaque",
     "visibility"=>"default",
     "location"=>"",
     "attendees"=>
        [{"rel"=>"organizer",
          "displayName"=>"******",
          "email"=>"....."}],
     "recurrence"=>"DTSTART;TZID=Asia/Tokyo:20110831T150000\r\nDTEND;TZID=Asia/Tokyo:20110831T160000\r\nRRULE:FREQ=WEEKLY;UNTIL=20111228T060000Z;BYDAY=WE\r\nBEGIN:VTIMEZONE\r\nTZID:Asia/Tokyo\r\nX-LIC-LOCATION:Asia/Tokyo\r\nBEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:JST\r\nDTSTART:19700101T000000\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\n",
     "when"=>
        [{"start"=>"2011-12-28T15:00:00.000+09:00",
        "end"=>"2011-12-28T16:00:00.000+09:00"}]}]


whenが含まれない事象に出くわした。そんな馬鹿な。発生条件不明。
  • この予定は、毎週水曜日の繰り返し予定。
  • 繰り返し終了日=最終回である。
  • 問題が起きたリクエストの対象期間内に、最終回がある。
  • (最終回より前の回を含むように)対象期間を変えてリクエストすれば問題は起きない。
  • 同等の内容で別の予定を作って検索しても再現しない。

APIドキュメントを眺めた限り、whenが抜けることがあるとも、必ずあるとも、記述は見つけられなかった。

困っているのは、そのイベントが本当に指定した期間内のものか(whenがないから)分からないこと。
今回はたしかに指定期間中にイベントがあったけど。
本当に心配なら、イベントidを使ってこのイベント単品の情報をリクエストしなおす・・・?
私はそれほどシビアな用途でないから検索結果を信じることにした。いまのところ。でも気持ち悪い・・・。

コメント

このブログの人気の投稿

GAS 同一カラムを複数条件でfilterできない件

Google Apps Script でSpreadsheetをデータベース代わりにwebアプリをポチポチ作ってて、スクリプトからSpreadsheetにフィルタかける場合、同一カラムに複数条件を設定できないことを知って残念……。 フィルタのかけ方はこんな感じ。 日付を範囲指定したいけど、After、Before片方しかつけられない。 var dataFile = SpreadsheetApp.openById(DATA_FILE_ID); var sh = dataFile.getSheetByName(LOG_SHEET_NAME); var criteriaDateAfter = SpreadsheetApp.newFilterCriteria().whenDateAfter(new Date(targetDate)).build(); var criteriaUserEqual = SpreadsheetApp.newFilterCriteria().whenTextEqualTo(user.id).build(); if (sh.getFilter()) { sh.getFilter().remove(); } var r = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn()) .createFilter() .setColumnFilterCriteria(DATE_COL, criteriaDateAfter) .setColumnFilterCriteria(USER_ID_COL, criteriaUserEqual) .getRange(); FilterCriteriaに2回条件設定してみたり var criteriaDateRange = SpreadsheetApp.newFilterCriteria() .whenDateAfter(new Date(date1)) .whenDateBefore(new Date(date2)).build(); 同じカラムに2回条件設定してみたり var r = sh.getRange(1, 1, sh.get

兵士というもの

体制への信頼、懐疑、雰囲気といった変化していく現象を、あとから測定するためのひとつの方法が、行動を突き止めるというやり方である。 国立銀行への貯蓄高、死亡広告の文面、アドルフと命名された子どもの数、教会脱退者などなど。民族同胞の雰囲気が頂点に達したのは1937年から1939年の間、1941年以降は急速に低下した。 政治的に始まった抑圧を日常的実践へと移しかえたのは、人々が受動的であり、抑圧を容認し、批判的な言動を同じ考えの持ち主の間でしか行わなかったからであった。p.55 これこそが、近代的人間が一見暴力とは無縁であるかのように見える原因なのだ。人々は暴力を想定しておらず、暴力が起きたならば、それはなぜなのかつねに説明を探し求める。たとえ、何らかの手段としての暴力ではなかったとしてもである。それにたいして、自らの身体的不可侵性が保障されていると信じていない者は、常に暴力を想定し、それが起きても動揺することはない。したがって信頼と暴力のバランスはつねに微妙で難しいものとなる。p.77 暴力というものが反文明的なものであり、抑圧されなければならず、深刻な場合には撲滅しなければならないものという形を取るようになったのは、歴史的に見ればようやく近代になってからのことである。暴力それ自体が非難されるべきこととされ、もちろん手段としての暴力は避けられないとしてもその都度正当化が必要とされるか、もし起こってしまったとすれば説明が必要なものとなった。p.78 しかしたとえば、人間が性欲を持つということに理由づけは必要だろうか。食べたり飲んだり息をしたりすることに[中略]したがって説明が求められるのはその様態であって、根本的な動機ではないのだ。おそらく暴力の場合にも、そのように考えることが有益であろう。[中略]結局のところ人類が生き延びたのは、平和を作り出す能力ゆえではなく、狩猟のさいや、食料を争うあらゆる種類のライバルにたいして行使した暴力ゆえなのである。p.78 家庭という領域では依然としてパートナーや子供、ペットに対する暴力が存在しているし、教会や学生寮といった閉鎖された社会領域でも同様である。[中略]おそらく、日常生活から暴力が無縁になるにつれ、象徴的もしくは代理的に行使される暴力への欲求が高まるのだろう。そして国家間でも依然として、暴力は独占からはほど遠い。p.79

佐藤忠良・安野光雅『ねがいは「普通」』

創作の目標のひとつにしたい佐藤忠良さんの対談。 絵をまた描きはじめた目で読むと、あちこち響いてくる。 満州に行かされていたんです。じきにソ連が参戦し、突撃ってことになって――。僕は戦線から逃げ出したんですよ。隊長を誘惑してね。その時、逃げるっていっても行く先がはっきりしないんですよ。日本海を泳いで帰るわけにもいかない。あのころ三十三歳くらいでしたか、元気だったんですね。先が見えないなら、地続きの、かねて憧れていたパリまで、歩いて行くより仕方がない――真剣に考えたんです。 人の顔をつくるとき、その人の怒りや喜びや過ごしてきた時間――粘土の中にね、過去と現在と未来までも、かっこいい言い方すると時間性をぶち込もうとするんです。それが彫刻家の苦しさだと思う。[中略]永く鑑賞に耐える芸術は、時間性を持たなくては――。  彫刻って、手でいちばん苦労するんです。手の動き方一つで、きざになったり、甘ったれたものになってしまったり。手の位置にも苦労しますね。 たとえばリンゴを描きたいというときは、その作家の全内容が投影して、書きたくなるわけです。描きたいなって思ったときに、作者のあらゆる哲学的なものや、思想的なものが投影できれば、絵のリンゴのほうが実際のリンゴよりよく見えてくる――。 でも、シベリアに抑留されていた三年間、男ばかりで過ごしていると、本当に、すべてのことを見せ合ってしまう。その時、我々日本人っていうのは、教養と肉体がバラバラになっていると思いました。 僕は日本にいるときから、ヤギなんかずいぶん描いていて、シベリアにいたときは描く紙がないから、心に絵を描くみたいにしてヤギを見ていたんです。 いや、目の前にして言うのはなんですが、何度見ても飽きないものをつくるのは難しいことです。特に気品あるものを作るというのは――。(安野) 僕はいつも思うんですよ。隣人への憐れみがない芸術は嘘ですよ。<中略>気品のないもの、隣人へのいたわりのないものから本物の芸術は生まれてこない。芸術だけではないのですが。 (山根 いずれにせよ作品にまとめるとか、彫刻に生かそうということで、お二人はデッサンをなさるわけですよね) まあそうですが。彫刻に生かそうというか、何か栄養を蓄積するようなことなんですよ。<中略> 素描