【问题标题】:Event guest list with user groups getting status by guest事件来宾列表,其中用户组按来宾获取状态
【发布时间】:2013-03-29 00:59:19
【问题描述】:

我正在尝试提取日历活动的客人列表并找出每个客人的状态(是、否、可能),但遇到了用户组的问题。它只是给了我组名和 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());      
}        
}  
}

【问题讨论】:

  • 对我来说似乎工作正常。您的代码显示每位客人的状态。您实际上是在通过 Gcal Ui 添加联系人组吗?
  • 扩展@BryanP 的评论 - 通过 GCal UI 添加时,在 gmail 中创建的组将扩展到所有成员。那么,您能解释一下您的“用户组”是什么吗?
  • 感谢@BryanP 的回复,我应该澄清一下用户组。在这种情况下,用户组是域用户组,而不是我创建的。我需要管理员权限才能访问该用户组(我目前没有)还是有其他方法?

标签: google-apps-script google-calendar-api


【解决方案1】:

目前这对于 DomainGroups 是不可能的,因为没有用于深入了解组成员状态的应用程序脚本 API 支持。根据文档,假设您具有查看组成员的适当权限,您应该能够通过日历 UI 查看这些用户及其状态。

来自Enterprise Calendar FAQ

我可以邀请我们公司目录中的邮件列表参加会议吗?

是的,您可以邀请我们公司中的任何邮件列表(组) 会议目录。小组的每个成员都会收到一封电子邮件 邀请。但是请注意,电子邮件邀请不会全部显示 该组的成员。此外,群组成员将出现在 仅当您有权在每个与会者的日历上发出邀请时 查看群组的成员列表。

如果您是域管理员,您可以使用GroupsManager 服务来检索组的成员列表。不幸的是,在日历事件的上下文中,这是您可以做的唯一有用的事情。您无法获取单个用户的邀请状态。我已修改您的脚本以检索成员列表:

function testCalendarEvents(){
  var calendarName="david_bingham@mitel.com";
  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());
        }
      }
    }        
  }  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    相关资源
    最近更新 更多