現在Google Calendar APIを使ったChrome拡張機能を作っています。
カレンダーに入っている予定を取得するAPIを叩く際、timeMin、timeMaxというパラメーターを使ってとってくる予定の期間を絞っているのですが、指定した期間とは違う期間の予定が入ってきてしまいます。
JavaScript
1function getCalendarData(){ 2 chrome.identity.getAuthToken({interactive: true}, function(token) { 3 let init = { 4 method: 'GET', 5 async: true, 6 headers: { 7 Authorization: 'Bearer ' + token, 8 'Content-Type': 'application/json' 9 }, 10 'contentType': 'json' 11 }; 12 const params = { 13 timeMin: '2018-06-24T09:59:59.000+09:00', 14 timeMax: '2018-06-25T23:59:59.000+09:00' 15 }; 16 const queryString = Object.keys(params).map(name => `${name}=${encodeURIComponent(params[name])}`).join('&'); 17 console.log(queryString); 18 fetch( 19 'https://www.googleapis.com/calendar/v3/calendars/primary/events?' + queryString, 20 init) 21 .then((response) => response.json()) 22 .then(function(data) { 23 data.itmes.forEach(function(event) { 24 console.log(event.start); 25 console.log(event.end); 26 }); 27 }); 28 }); 29}
上記では6月24日〜25日の予定で指定しておりますが、下記のように範囲外の予定が帰ってきてしまいます。
{dateTime: "2018-06-24T20:00:00+09:00"}
{dateTime: "2018-06-24T23:30:00+09:00"}
{dateTime: "2018-06-25T13:30:00+09:00"}
{dateTime: "2018-06-25T14:30:00+09:00"}
{dateTime: "2018-05-14T11:30:00+09:00", timeZone: "Asia/Tokyo"}
{dateTime: "2018-05-14T12:30:00+09:00", timeZone: "Asia/Tokyo"}
{dateTime: "2018-06-11T11:30:00+09:00", timeZone: "Asia/Tokyo"}
{dateTime: "2018-06-11T13:00:00+09:00", timeZone: "Asia/Tokyo"}
{dateTime: "2018-02-05T09:00:00+09:00", timeZone: "Asia/Tokyo"}
{dateTime: "2018-02-05T10:00:00+09:00", timeZone: "Asia/Tokyo"}
{date: "2018-06-24"}
{date: "2018-06-25"}
どなたか問題点がわかる方、ご教授いただけないでしょうか。何卒よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/04 10:53