2017-07-06 59 views
0

我試圖修改daubejb在線上找到的腳本,從Google日曆事件創建Google文檔。guestlist [j] .getName()不返回名稱

Google網站上的參考文獻指出,如果某個名稱不可用,則getName()命令應該顯示該guest或其電子郵件的名稱。但是,我嘗試時沒有顯示任何內容。當我使用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 

在此先感謝。

回答

0

如果getEmail()正在工作,則僅表示沒有提供名稱,因此getName()不會返回任何結果。該API工作正常。

我建議在您的其他日曆中使用有效的訪客名稱來查看您是否仍然沒有結果。

+0

我嘗試了你所說的並且有效,我的名字在我的個人電子郵件中顯示得很好,但我工作區中每個人的名字都是不可讀的。我只是不知道缺少什麼設置。我在Google的「我的帳戶」中查看了「關於我」部分,如果不諮詢管理員,我無法更改任何內容,因此可能是問題所在。 –

相關問題