【问题标题】:How to use getGuestList to get Names, not email addresses?如何使用 getGuestList 获取姓名,而不是电子邮件地址?
【发布时间】:2013-04-23 10:39:42
【问题描述】:

我找到了这个脚本(由 Jonathon 发布),需要对其进行修改以提供用户名。

当我尝试获取客人姓名(使用getGuestList())时,它会在我的电子表格中返回 EventGuest。

如何将客人姓名(不是电子邮件)输入电子表格?

function caltest3(){

var ss = SpreadsheetApp.openById( 'spreadsheetId' ),
  sheet = ss.getSheetByName( 'sheetName' ),
  cals = ['id1', 'id2', 'id3'], c, cal, calName,
  start = new Date( 'whenever' ), end = new Date( 'whenever' ),
  events, i, details,
  eventslog = [], e,
  rows = [], range;

for (c = 0; c < cals.length; c += 1) {

cal = CalendarApp.getCalendarById(cals[c]);
calName = cal.getTitle();
events = cal.getEvents(start, end);

// add the events of the current calendar to the array of all events
  eventslog = eventslog.concat(
   events.map(function(event) {
     return {
       time: new Date(event.getStartTime()).getTime(), // sort by this
        details: [
         event.getTitle(),
         event.getStartTime(),
         event.getEndTime(),
         event.getDescription(),
         event.getLocation(),
         calName // change calendar info position in array to suit
        ]
      };
    })
  );
 }

// sort array of event so date order can be either way by reversing a & b
eventslog.sort(function(a, b) { return a.time - b.time; });

rows = eventslog.map(function(entry) { return entry.details; });

range = sheet.getRange(2, 1, rows.length, 6);
range.setValues(rows);
}

【问题讨论】:

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


    【解决方案1】:

    您需要遍历Event.getGuestList() 返回的客人,并使用EventGuest.getName()documented here 检索每个名称。您应该验证该名称是否为空白,并且在这种情况下可能会选择电子邮件 - 我将把它留给您。

    以下是您的函数将如何改变:

    function caltest3(){
    
    var ss = SpreadsheetApp.openById( 'spreadsheetId' ),
      sheet = ss.getSheetByName( 'sheetName' ),
      cals = ['id1', 'id2', 'id3'], c, cal, calName,
      start = new Date( 'whenever' ), end = new Date( 'whenever' ),
      events, i, details,
      eventslog = [], e,
      rows = [], range;
    
    for (c = 0; c < cals.length; c += 1) {
    
    cal = CalendarApp.getCalendarById(cals[c]);
    calName = cal.getTitle();
    events = cal.getEvents(start, end);
    
    // add the events of the current calendar to the array of all events
      eventslog = eventslog.concat(
       events.map(function(event) {
         var deets =  {
           time: new Date(event.getStartTime()).getTime(), // sort by this
            details: [
             event.getTitle(),
             event.getStartTime(),
             event.getEndTime(),
             event.getDescription(),
             event.getLocation(),
             calName // change calendar info position in array to suit
            ]
          };
          var guestList = event.getGuestList();
          event.guests = [];
          for (var i in guestList) {
            event.guests.push(guestList[i].getName());
          } 
          deets.guests = guestList;
          return deets;
        })
      );
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多