2013-10-24 107 views
0

我想在谷歌腳本日曆中按照這裏的例子。除了calendarID之外,我沒有更改代碼。該代碼是完全一樣的例子顯示:谷歌腳本谷歌日曆TypeError:無法調用null的方法「createEvent」

function createEvent(calendarId) { 
     var cal = CalendarApp.getCalendarById(calendarId); 
     var title = 'Script Demo Event'; 
     var start = new Date("April 1, 2012 08:00:00 PDT"); 
     var end = new Date("April 1, 2012 10:00:00 PDT"); 
     var desc = 'Created using Google Apps Script'; 
     var loc = 'Script Center'; 

     var event = cal.createEvent(title, start, end, { 
      description : desc, 
      location : loc 
     }); 
    }; 

我不知道如果我需要calendarId改變我的「[email protected]」。但是當我運行這些代碼時,錯誤是TypeError: Cannot call method "createEvent" of null. (line 15, file "Code")

問題是什麼?

回答

3

錯誤信息是告訴你,沒有與此ID沒有日曆,對於非域用戶日曆ID的通常形式是一樣的東西[email protected],並提供域:[email protected]enter image description here

您是否檢查過輸入的ID是否有效?

您還可以測試使用getCalendarsByName('calendarName')相同的腳本將返回在您的日曆有這個名字的所有日曆的數組,在這種情況下,你必須挑選通常使用getCalendarsByName('calendarName')[0]第一個。

您還可以使用您的默認日曆使用getDefaultCalendar(),這是一個附加到您的Gmail地址。 這一切都很好地說明了documentation

這個小代碼將允許您檢查您擁有或訂閱的所有日曆的ID。

function testCals(){ 
    var cals = CalendarApp.getAllCalendars(); 
    for(var n in cals){ 
    Logger.log(' calendar ID = '+cals[n].getId()+'\nName = '+cals[n].getName()+'\n') 
    } 
} 
+0

謝謝你回答我的問題的默認代碼。我使用「http://www.youtube.com/watch?v=m_ph_hYT_SY」來檢查我的calendarId,這很奇怪我的calendarId與我的電子郵件地址相同。正如我所提到的,它不起作用... 。當我使用的代碼,你給我的日誌信息是「0」... – user2592038

+0

你是什麼意思'0'?它只是不能返回一個0,它必須包含「日曆ID:.....」。你需要一些關於如何查看記錄器的提示嗎?隨意問。 –

+0

我看了視頻,你的個人日曆(AKA默認日曆或Gmail日曆)ID確實是你的電子郵件,這是正常的......你顯示的腳本與ID字段中的電子郵件一起工作,我只是測試確定(但你爲什麼在2012年4月創建這個#@ !!§§#事件?XD)不確定你的問題到底是什麼,請詳細描述。 thx –

0

的事件在2012年使用的是由谷歌作爲一個例子

+0

請使用評論...評論...沒有答案。 Thx –

+0

但是,謝謝你的信息,我應該猜到了:-) –