我正在尝试修改daubejb在网上找到的一个脚本,以便从Google Calendar事件创建一个Google Doc。
谷歌网站上的参考资料说,getName()命令应该显示来宾的名称,如果没有可用的名称,则显示来宾的电子邮件。但是,当我尝试时,什么也没有显示。当我使用getEmail()命令时,我可以很好地收到电子邮件,但我更喜欢获得名称。
function createMeetingNotesNextTimePeriod() {
//------VARIABLES--
// define a custom style for all data labels
var labelStyle ={};
labelStyle[DocumentApp.Attribute.BOLD] = true;
labelStyle[DocumentApp.Attribute.FONT_SIZE] = 11;
// get today's date
var today = new Date();
// create a formatted version of today's date
var formatted_today = Utilities.formatDate(today, "EDT","yyyy-MM-dd");
// number of hours from now to check for meetings
var hours = 2
// create variable for now
var now = new Date();
// create variable for number of hours from now in milliseconds
var period_from_now = new Date(now.getTime() + (hours * 60 * 60 * 1000));
//------GET EVENTS/ATTRIBUTES FOR TIME PERIOD FROM NOW--------------
// retrieve all calendar events for time period
var events = CalendarApp.getDefaultCalendar().getEvents(now, period_from_now, {search: '@notes'}) ;
// loop through each event an get meeting attributes,
for (var i=0;i<events.length;i++) {
var title = events[i].getTitle();
var description = events[i].getDescription();
var eventstart = events[i].getStartTime();
var eventend = events[i].getEndTime();
var location = events[i].getLocation();
var owner = events[i].getCreators();
var guestlist = events[i].getGuestList();
//----------CREATE MEETING NOTE DOC -------------
// create a google doc with the meeting name as the title
var file_exists = DriveApp.getFilesByName(title).hasNext();
// check to see if file already exists, if does skip if loop
if ((file_exists == false) && (guestlist.length >= 1)) {
var doc = DocumentApp.create(title);
// loop through event guests and get their emails and status
for (var j=0;j<guestlist.length;j++) {
var name = guestlist[j].getName();
var guestStatus = guestlist[j].getGuestStatus();
doc.getBody().appendParagraph(name + ': ' + guestStatus);
}
doc.getBody().editAsText()
.insertText(0, 'Invités:\n')
.setAttributes(0, 9, labelStyle);
doc.getBody().editAsText()
.insertText(0, 'Description:' + '\n\n' + description + '\n\n')
.setAttributes(0, 11, labelStyle);
doc.getBody().editAsText()
.insertText(0, 'Organisateur: ' + owner + '\n\n' )
.setAttributes(0, 11, labelStyle);
doc.getBody().editAsText()
.insertText(0, 'Location: ' + location + '\n\n')
.setAttributes(0, 8, labelStyle);
doc.getBody().editAsText()
.insertText(0, 'Fin: ' + eventend + '\n\n')
.setAttributes(0, 3, labelStyle);
doc.getBody().editAsText()
.insertText(0, 'Début: ' + eventstart + '\n')
.setAttributes(0, 5, labelStyle);
doc.getBody().editAsText()
.insertText(0, title + '\n\n')
.setFontSize(0, title.length, 14)
.setBold(0, title.length, true)
.setForegroundColor(0, title.length, '#cc0000');
} // if for file exists
} // for loop for each event
} // functionCreateMeetingNotesNextTimePeriod
提前谢谢。
发布于 2017-07-07 17:05:20
如果getEmail()正在工作,这只意味着没有提供名称,因此getName()不返回任何结果。API运行得很好。
我建议您尝试使用其他带有有效客人姓名的日历,看看您是否仍然没有得到任何结果。
https://stackoverflow.com/questions/44953269
复制相似问题