在Google日历API的events.list的回复中查找日历所有者的电子邮件?

时间:2016-03-17 03:45:14

标签: javascript google-calendar-api

我正在开发一个显示我的同事的日历统计信息的网络应用程序。要显示此人的电子邮件,我使用的是一个名为' summary' (基本上,响应对象不包含id字段。它只有summary字段。)

在大多数情况下,这是该人的电子邮件。它工作。

但是当此人将日历名称更改为“工作”时或者某种东西,它看起来像是工作'而不是' cathie@mydomain.com'。在那种情况下,我无法知道他/她的电子邮件,因此我无法打印这些统计数据。

问题

  1. gapi.client.calendar.events.list响应的API响应中是否有一个字段,其中包含日历所有者的电子邮件?

  2. 是否有任何javascript技巧可以将此信息(calendarId)传递到'request.execute(function(resp)'并从回调函数中访问它?

  3. 如果有标准方法,请建议。

  4. function getStatistics() {
        people = ['Alice', 'Bob', 'Cathie'];
        people.forEach(fetchStats);
    }
    
    function fetchStats(person) {
        var calendarId = person + '@mydomain.com';
    
        // ... some code
    
        var request = gapi.client.calendar.events.list({
            'calendarId': calendarId,
            'timeMax': (new Date()).toISOString(),
            'timeMin': '2016-01-01T00:00:00+05:30'
      });
    
      request.execute(function(resp) {
            var calendarId = resp.summary;
    
            if (calendarId.indexOf('@') == -1) {
                window.alert(resp + "\n" + calendarId);
                return;
            }
    
            // code to render statistics on events of the calendarId
      );
    }
    

1 个答案:

答案 0 :(得分:1)

function getStatistics() {
    people = ['Alice', 'Bob', 'Cathie'];
    people.forEach(fetchStats);
}

function fetchStats(person) {
    var calendarId = person + '@mydomain.com';

    // ... some code

    var request = gapi.client.calendar.events.list({
        'calendarId': calendarId,
        'timeMax': (new Date()).toISOString(),
        'timeMin': '2016-01-01T00:00:00+05:30'
    });

  request.execute(function(resp) {
        //use the calendarId variable set above
        if (calendarId.indexOf('@') == -1) {
            window.alert(resp + "\n" + calendarId);
            return;
        }

        // code to render statistics on events of the calendarId
      });
}

您所要做的就是删除回调中calendarId的本地设置。回调仍然可以在你的fetchStats函数的范围内引用,我只是测试它,它似乎工作正常。