我正在开发一个显示我的同事的日历统计信息的网络应用程序。要显示此人的电子邮件,我使用的是一个名为' summary' (基本上,响应对象不包含id
字段。它只有summary
字段。)
在大多数情况下,这是该人的电子邮件。它工作。
但是当此人将日历名称更改为“工作”时或者某种东西,它看起来像是工作'而不是' cathie@mydomain.com'。在那种情况下,我无法知道他/她的电子邮件,因此我无法打印这些统计数据。
问题
gapi.client.calendar.events.list
响应的API响应中是否有一个字段,其中包含日历所有者的电子邮件?
是否有任何javascript技巧可以将此信息(calendarId)传递到'request.execute(function(resp)'
并从回调函数中访问它?
如果有标准方法,请建议。
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
);
}
答案 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函数的范围内引用,我只是测试它,它似乎工作正常。