我正在尝试为日历活动提取来宾列表,并弄清每个来宾状态(是,否,可能),但是用户组遇到了问题。它只是给了我组名和一个INVITED状态,但是我需要用户组中的每个来宾及其邀请状态。这可能吗?
var calendarName="calendar name";
var calDate=new Date("04/02/2013");
function testCalendarEvents(){
var calendars = CalendarApp.getCalendarsByName(calendarName);
var events = calendars[0].getEventsForDay(calDate);
for(var c=0; c<events.length; c++){
Logger.log("Event "+c+": "+events[c].getTitle());
var guestList=events[c].getGuestList();
for(var d=0; guestList!=null && d<guestList.length; d++){
Logger.log("Guest "+d+": "+guestList[d].getEmail()+", Status: "+guestList[d].getGuestStatus());
}
}
}
目前,对于DomainGroups,这是不可能的,因为不存在用于深入了解组成员状态的apps-script API。根据文档,假定您具有查看组成员的适当权限,则应该能够通过日历UI查看这些用户及其状态。
我可以从公司目录邀请邮件列表参加会议吗?
是的,您可以邀请我们公司中的任何邮件列表(组)会议目录。群组的每个成员都会收到一封电子邮件邀请。但是请注意,电子邮件邀请不会显示全部小组成员。此外,组成员将出现在仅在您有权查看组的成员列表。
如果您是域管理员,则可以使用GroupsManager服务来检索组的成员列表。不幸的是,在日历事件的背景下,这是您唯一可以做的事情。您无法获得单个用户的邀请状态。我已修改您的脚本以检索成员列表:
function testCalendarEvents(){
var calendarName="[email protected]";
var calDate=new Date("04/01/2013");
var calendars = CalendarApp.getCalendarsByName(calendarName);
var events = calendars[0].getEventsForDay(calDate);
try {
var domainAdmin = false; // assume we aren't an admin in a domain
GroupsManager.getGroup("test");
domainAdmin = true; // we passed the test, so we ARE
}
catch (error) {
// We didn't pass the test... why not?
// Get "Service error: : Invalid request URI" if outside of an enterprise account
// Get "You do not have permission to perform that action." if not admin.
Logger.log("Not Domain Admin: "+error.message);
}
for(var c=0; c<events.length; c++){
Logger.log("Event "+c+": "+events[c].getTitle());
var guestList=events[c].getGuestList();
for(var d=0; guestList!=null && d<guestList.length; d++){
if (!domainAdmin) {
Logger.log("Guest "+d+": "+guestList[d].getEmail()+", Status: "+guestList[d].getGuestStatus());
}
else {
// Check if this guest is a group
var group = GroupsManager.getGroup(guestList[d].getEmail());
if (group) {
// getAllMembers() returns an array of email addresses
var groupMembers = group.getAllMembers();
for (var e in groupMembers) {
Logger.log("Guest "+d+"/"+e+": "+groupMembers[e]+
", Status: "+"UNKNOWN(group "+guestList[d].getEmail()+")");
}
}
else {
Logger.log("Guest "+d+": "+guestList[d].getEmail()+", Status: "+guestList[d].getGuestStatus());
}
}
}
}
}
我遇到了同样的问题。我现在的想法是使用UI创建脚本来创建事件。使用admin目录,可以将API中的所有成员都获取到组中,这可能是获得所有来宾状态的一种方法。