如何在Google日历导出的JavaScript代码中获取参会者邮箱并解决TypeError
获取日历参会者邮箱并替换代码中的
getLocation 嘿,我来帮你解决这个问题!你遇到的TypeError是因为CalendarEvent对象根本没有你试的那些getEmail()、getAttendee()方法——正确的姿势是先获取参会者列表,再从每个参会者对象里拿邮箱。
具体解决方案:
首先,我们可以写一个小函数来获取第一个有效客户的邮箱(满足你“最多一位,多位忽略其他”的需求):
function getFirstGuestEmail(event) { const guests = event.getGuestList(); // 过滤掉会议创建者,确保拿到的是客户邮箱 const customerGuests = guests.filter(guest => !guest.isCreator()); // 如果有客户参会就返回第一个的邮箱,没有就返回空字符串 return customerGuests.length > 0 ? customerGuests[0].getEmail() : ''; }
然后把你原来代码里的events[i].getLocation()替换成这个函数的调用结果就行:
var details=[[ mycal, events[i].getTitle(), events[i].getDescription(), getFirstGuestEmail(events[i]), // 这里替换掉原来的getLocation() events[i].getStartTime(), events[i].getEndTime(), myformula_placeholder, ('' + events[i].getVisibility()), events[i].getDateCreated(), events[i].getLastUpdated(), events[i].getMyStatus(), events[i].getCreators(), events[i].isAllDayEvent(), events[i].isRecurringEvent() ]];
为啥之前的写法不对?
CalendarEvent对象本身没有直接获取单个参会者邮箱的方法,必须通过getGuestList()拿到所有参会者的Guest对象数组,再对每个Guest对象调用getEmail()才能拿到邮箱地址。你之前试的那些方法要么不存在,要么调用方式错误。
可选调整:
如果不需要过滤创建者(比如创建者也是客户的情况),可以简化函数:
function getFirstGuestEmail(event) { const guests = event.getGuestList(); return guests.length > 0 ? guests[0].getEmail() : ''; }
这样修改后,你的脚本就能正确把参会者邮箱导出到Google表格里啦!
内容的提问来源于stack exchange,提问作者985ranch
相关产品推荐
相关产品推荐

