【发布时间】:2016-01-31 01:38:24
【问题描述】:
我正在尝试在日历上列出活动的参与者。我注意到没有列出重复活动的参与者,只有创建者。当我通过网站查看日历时,列出了与会者。我正在按单个事件进行查询。我是否必须以不同的方式处理这些活动才能吸引与会者?
function listEvents() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var data = sheet.getDataRange();
sheet.clearContents();
var calendarId = 'primary';
var now = new Date();
var events = Calendar.Events.list(calendarId, {
timeMin: now.toISOString(),
singleEvents: true,
orderBy: 'startTime',
maxResults: 5
});
if (events.items && events.items.length > 0) {
for (var i = 0; i < events.items.length; i++) {
var event = events.items[i];
if (event.start.date) {
// All-day event.
var start = parseDate(event.start.date);
} else {
var start = parseDate(event.start.dateTime);
var end = parseDate(event.end.dateTime);
var duration = (end-start);
var creator = event.creator.email;
sheet.appendRow([creator,event.summary, start.toLocaleString(), end.toLocaleString(), duration]);
if (event.attendees) {
for (var j = 0; j < event.attendees.length; j++) {
sheet.appendRow([event.attendees[j].email,event.summary, start.toLocaleString(), end.toLocaleString(), duration]);
}
}
}
}
} else {
Logger.log('No events found.');
}
}
【问题讨论】:
-
if (event.attendees)行失败了吗?您可以尝试使用if (event.attendess.length != 0)并尝试吗? -
我输入这条线是为了处理我遇到没有参加者的重复事件的情况。我想知道如何访问定期活动的参与者。
-
与会者的访问权限是正确的,(event.attendees[j]) 但您的初始检查可能会失败,因为这不是检查它的方法。
-
问题不在于支票。如果我查看基本返回值: Logger.log(event);退货没有重复活动的参与者。我只是把: if (event.attendees);签到,这样与会者的迭代就不会因重复发生的事件而失败。但是,当我查看该定期活动的此日历的 Web 界面时,有与会者。我在文档中找不到任何关于为什么不返回重复活动的参与者的任何内容。
-
见Private event properties。关于获取与会者的部分内容表明您应该计算与会者通过
attendees[ ].responseStatus的响应,因为这是唯一在与会者和组织者之间传播的事件更改。
标签: google-apps-script google-calendar-api