よろしくおねがいします。
記載が不足している部分があったらご指摘ください。
前提・実現したいこと
Google Calendar APIのfreebusyを利用して、
Google Calendarを参照し、予定の有無を確認したい。
発生している問題・エラーメッセージ
Responseのbodyにbusyが無い。
■responseのbody => {"kind"=>"calendar#freeBusy", "timeMin"=>"2019-01-11T02:00:00.000Z", "timeMax"=>"2019-01-11T11:00:00.000Z"} ↑ parseしてます。ステータスは200です。 Googleのリファレンスや、ググった感じだと、calendar-idを指定すると予定があってもなくても、 bodyにbusy-keyが入ってきてくれると思われます。。
該当のソースコード
request body ※railsのapi-clientを利用しています。
post( "https://www.googleapis.com/calendar/v3/freeBusy", {body: JSON.dump({timeMin: "2019-01-11T11:00:00+09:00", timeMax: "2019-01-11T20:00:00+09:00", timeZone: "Asia/Tokyo", groupExpansionMax: 5, calendarExpansionMax: 5, itmes: [{ id: 'xxxx.xxxx@gmail.com' },{ id: 'xxxx.xxxx@gmail.com' }]}), headers: {'Content-Type' => 'application/json'}}
試したこと
itemsの指定を外して試行
結果)itmesの指定を行ったときと同じresponseだった。itemsの指定がNGな可能性が高い?
※itemsのidはメールアドレスを指定しています。
freebusy以外のapiを試行
calendarやlistのgetや、insert、deleteは問題なく行える。。。
カレンダのidはメール(グループは別)だと思いますが、とりあえずitemsの指定に疑いがあるのでしたら、こちら(https://developers.google.com/calendar/v3/reference/freebusy/query)を開いて右に出るエリアで実行してみてはいかがでしょうか?
↑で試すかぎり、確かにidを指定すればid.busyは予定がなくても空配列が返されてました。
ありがとうございます。
ご教示いただいたとおり、試行してみました。
同じ様に指定した場合、busyは返ってきますね。。。
{
"kind": "calendar#freeBusy",
"timeMin": "2019-01-12T07:00:00.000Z",
"timeMax": "2019-01-12T08:00:00.000Z",
"calendars": {
"aaaaaa@gmail.com": {
"busy": []
}
}
}
指定に問題がないとするとapi-clientに問題がある可能性がありますね。。。
そうですね。可能性として、値である配列が空なのでキー自体を消すっていうのは、世の中のプログラムとしては、ある動きだなとは思いました。ただ、このクライアントがそういうことをしそうな資料まで行き着けませんでした。
あなたの回答
tips
プレビュー