2016-09-28 2 views
1

다음 함수를 작성하여 gCal 이벤트를 만든 사용자를 얻으려고했습니다.getCreators() 유형 오류

이것을 테스트하려면 일정에 이벤트를 만들고 스크립트를 실행하려고했습니다. 스크립트가 실행되면 오류가 발생합니다. "TypeError : CalendarEvent 객체에서 getCreators 함수를 찾을 수 없습니다 (줄 68, 파일"코드 ")."

왜 이런 생각입니까? 그냥 한 경우에도,

function getuser(instr) { 
    var today = new Date(); 
    var scriptProperties=PropertiesService.getScriptProperties(); 
    var instrcal= scriptProperties.getProperty(instr); 
    var event=CalendarApp.getCalendarById(instrcal).getEventsForDay(today); 
    if (event<1) { 
    var user= 'None' 
    } 
    else if (event>1) { 
    var user= 'Multiple Users' 
    } 
    else { 
    var user= event.getCreators() 
    } 
    return user 
} 

답변

0

getEventsForDayreturns an array of CalendarEvent objects, 그 일에 대한 모든 이벤트 : 나는() 객체 CalendarEvent에서 함수 (https://developers.google.com/apps-script/reference/calendar/calendar-event#getCreators() 참조) 인 매우 특정 getCreators을 해요.
이벤트를 통해 원하는 이벤트를 찾아서 getCreators()으로 전화해야합니다.

당신은 여기

var event=CalendarApp.getCalendarById(instrcal).getEventsForDay(today)[0]; 

전화가 작동합니다 사용하여이를 확인할 수 있습니다.

+0

단일 값이있는 경우 여전히 배열을 반환 실현하지 않았다. 그게 해결 됐어! 고맙습니다! – DLee

+0

첫 번째 요소'event [0] '을 얻으려고하기 전에'event.length'로 확인해야합니다. –

+0

감독되지 않은 환경에서는 예를 들어, OP에는 자신이 만든대로 하나 이상의 이벤트가 있기 때문에 생략했습니다. 간결하게하기 위해 –

0

getEventsForDay(date) 메소드는 주어진 날에 발생하는 모든 이벤트 array을 얻습니다.

event.length < 1 대신 event < 1을 확인하십시오.

코드 :

function getuser(instr) { 
    var today = new Date(), 
     scriptProperties = PropertiesService.getScriptProperties(), 
     instrcal = scriptProperties.getProperty(instr), 
     events = CalendarApp.getCalendarById(instrcal).getEventsForDay(today), 
     user = 'None'; 

    if (events.length === 1) { 
     user = events[0].getCreators(); 
    } else if (events.length > 1) { 
     user = 'Multiple Users'; 
    } 

    return user; 
}