尝试将逗号分隔的电子邮件地址列表添加到Google Apps脚本中,以便通过电子邮件将发生新日历事件的人员发送给这些人。
似乎我可以使用以下格式静态包含电子邮件
attendees: [
{email: 'alice@example.com'},
{email: 'bob@example.com'}
],
但是我不知道如何获取一个csv字符串并将这些条目转换为电子邮件地址列表。
var calId = 'xxxx@resource.calendar.google.com';
var event = {
sendNotifications: true,
sendUpdates: "all",
summary: summary,
start: {
date: eventDate
},
end: {
date: eventDate
}
};
var adds = response.getResponseText();
if( adds.length > 0 ){
//Create Mail List
var addresses = adds.split(',');
for( var i=0; i < addresses.length; i++){
var addee=addresses[i].trim();
Logger.log(addee);
event.attendees.push( "email: "+addee);
}
event = Calendar.Events.insert( event, calId, {sendNotifications: true}
);
答案 0 :(得分:0)
在我看来,您的问题可能来自:
event.attendees = new List<EventAttendee>();
...
event.attendees.email=addee;
据我了解,该数组将为空,可能无法以这种方式添加电子邮件...我没有尝试过,但是这段代码看起来更好:
ArrayList<EventAttendee> attendees = new ArrayList<EventAttendee>();
...
attendees.add(new EventAttendee().setEmail(addee)); // in the loop
...
event.setAttendees(attendees);
答案 1 :(得分:0)
我知道已经很晚了,但是也许答案可以帮助其他人。 您需要做两件事: 1.您需要将参与者添加为“事件”内的属性ID,以便当您尝试推送元素时,它不会说“未定义”。像这样:
var event = {
summary: subject,
location: dir,
description: (part1+'\n'+part2linebreak),
start: {
dateTime: start.toISOString()
},
end: {
dateTime: end.toISOString()
},
attendees: [
],
// Red background. Use Calendar.Colors.get() for the full list.
colorId: 11
};
与会者已创建,但为空。
2。现在,我们将数据输入“与会者”,如下所示:
for(var i=0; i<mailist.length; i++){
event.attendees.push({email: mailist[i]});
}
至少我是怎么做到的:) 还sendUpdates:“全部”或sendNotifications:true,超出事件范围,例如:
event = Calendar.Events.insert(event, calid,{senUpdates: "all"});
欢呼