2016-09-28 6 views
1

次の関数を記述して、gCalイベントを作成したユーザーを取得しようとしました。getCreators()タイプエラー

これをテストするには、予定表にイベントを作成してスクリプトを実行しようとしました。スクリプトが実行されると、エラーが発生します。 "TypeError:オブジェクトCalendarEvent(関数68行、ファイル"コード ")に関数getCreatorsが見つかりません。

なぜこれが起こっているすべてのアイデア?私はかなり特定のgetCreatorsだ()オブジェクトCalendarEvent(参考:https://developers.google.com/apps-script/reference/calendar/calendar-event#getCreators())内の関数である

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、それはただ一つであっても、その日のすべてのイベント、。
イベントを行って目的のイベントを探し、getCreators()に電話する必要があります。

あなたは、呼び出しが動作します。ここ

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

を使用してこれを確認することができます。

+0

単一の値がある場合、それはまだ配列を返します気づいていませんでした。それはそれを解決しました!ありがとうございました! – DLee

+0

最初の要素 'event [0] 'を取得しようとする前に' event.length'でチェックする必要があります –

+0

監督されていない環境では、OPは自分自身で作成したOPを少なくとも1つ持っていたので、簡潔にする –

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; 
} 
関連する問題