0

当我看到 API 的 V2 将在不到一年的时间内被弃用时,我只是在开发用于从 Javascript 中的谷歌日历获取事件的工具。这显然毁了我的一天^^。

所以我尝试熟悉这个新的 API,但仍然有一些我找不到的东西。如何使用 google calendar API v3 的 javascript 客户端执行等效的参数“futureevents=true”?

<script type="text/javascript">
    var apiKey = 'apikey';
    var scopes = 'https://www.googleapis.com/auth/calendar';

    function handleClientLoad() {
  gapi.client.setApiKey(apiKey);
  makeApiCall();
    }

    function makeApiCall() {
        gapi.client.load('calendar', 'v3', function() {
           var request = gapi.client.calendar.events.list({
               'calendarId': 'idcalendar@group.calendar.google.com'
            });
        request.execute(function(resp) {
           console.log(resp);
           for (var i = 0; i < resp.items.length; i++) {
               var title = document.createTextNode(resp.items[i].summary); 
               var description = document.createTextNode(resp.items[i].description + ' ');
               var location = document.createTextNode(resp.items[i].location + ' ');
               var date = document.createTextNode('Start: ' + resp.items[i].start.date + ' End: ' + resp.items[i].end.date);

               var div = document.createElement('div');
               var h1 = document.createElement('h1');
               h1.appendChild(title);
               div.appendChild(location);
               div.appendChild(description);
               div.appendChild(h1);
               var p = document.createElement('p');
               p.appendChild(date);
               div.appendChild(p);
               document.body.appendChild(h1);
               document.body.appendChild(div);
             }
          });
       }
</script>
<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>

这是我的代码,有了这个,我得到了日历的所有事件,我怎么能只得到一个还没有发生的事件。

提前致谢

4

2 回答 2

4

就像 Jay Lee 说的那样,但为了使用 timeMin,您还需要将 'singleEvents' 设置为 true。我还包括了一个正确的日期时间字符串。

var request = gapi.client.calendar.events.list({
        'calendarId': 'idcalendar@group.calendar.google.com',
        'singleEvents': true, /* required to use timeMin */ 
        'timeMin': '2013-02-01T11:43:22.000Z'
    });
于 2013-05-15T13:21:01.713 回答
3

之后使用timeMinevents.list() API 调用的参数仅请求事件。

var request = gapi.client.calendar.events.list({
           'calendarId': 'idcalendar@group.calendar.google.com',
           'timeMin': '2013-05-09T09:43:00-04:00'
        });

您可能需要使用一些日期格式,我不完全确定该值应该是什么类型,但您只需要获取当前日期时间并发送它。

于 2013-05-09T13:45:13.733 回答