Google apps script 谷歌脚本谷歌日历类型错误:无法调用方法";createEvent";空的
我正试图遵循谷歌脚本日历中的示例。除了calendarID之外,我没有更改代码。代码与示例所示完全相同:Google apps script 谷歌脚本谷歌日历类型错误:无法调用方法";createEvent";空的,google-apps-script,google-calendar-api,Google Apps Script,Google Calendar Api,我正试图遵循谷歌脚本日历中的示例。除了calendarID之外,我没有更改代码。代码与示例所示完全相同: function createEvent(calendarId) { var cal = CalendarApp.getCalendarById(calendarId); var title = 'Script Demo Event'; var start = new Date("April 1, 2012 08:00:00 PDT"); va
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更改为'xxxxx@gmail.com'. 但是当我运行这些代码时,错误是TypeError:cannotcallmethod“createEvent”of null。(第15行,文件“代码”)
问题出在哪里?错误消息告诉您没有具有此ID的日历,非域用户的日历ID的通常形式如下h22xxxxxxxjb6ul4hu7ft8@group.calendar.google.com,对于域:domain.xxx_se8nmkl1qsqxxxxxxxxx28ufs@group.calendar.google.com. 您是否已检查您输入的ID是否有效 您还可以使用测试同一脚本,该脚本将返回日历中具有此名称的所有日历的数组,在这种情况下,您通常必须使用getCalendarsByName('calendarName')
选择第一个日历 您也可以使用getCalendarsByName('calendarName')[0]
使用默认日历,这是附加到gmail地址的日历。 所有这一切都在下面的例子中得到了很好的说明 这段小代码将允许您检查您拥有或订阅的所有日历的IDgetDefaultCalendar()
function testCals(){ var cals = CalendarApp.getAllCalendars(); for(var n in cals){ Logger.log(' calendar ID = '+cals[n].getId()+'\nName = '+cals[n].getName()+'\n') } }
错误消息告诉您没有具有此ID的日历,非域用户的日历ID的通常形式如下h22xxxxxxxjb6ul4hu7ft8@group.calendar.google.com,对于域:domain.xxx_se8nmkl1qsqxxxxxxxxx28ufs@group.calendar.google.com. 您是否已检查您输入的ID是否有效 您还可以使用测试同一脚本,该脚本将返回日历中具有此名称的所有日历的数组,在这种情况下,您通常必须使用getCalendarsByName('calendarName')
选择第一个日历 您也可以使用getCalendarsByName('calendarName')[0]
使用默认日历,这是附加到gmail地址的日历。 所有这一切都在下面的例子中得到了很好的说明 这段小代码将允许您检查您拥有或订阅的所有日历的IDgetDefaultCalendar()
function testCals(){ var cals = CalendarApp.getAllCalendars(); for(var n in cals){ Logger.log(' calendar ID = '+cals[n].getId()+'\nName = '+cals[n].getName()+'\n') } }
2012年的事件是谷歌用作示例的默认代码2012年的事件是谷歌用作示例的默认代码谢谢你回答我的问题。我使用“”仔细检查了我的calendarId,发现我的calendarId与我的电子邮件地址相同。正如我所提到的,它不起作用…当我使用你给我的代码时,日志信息是“0”…你说的“0”是什么意思?它不能返回单个0,它必须包含“日历ID:…”。您是否需要一些有关如何查看记录器的提示?请随意提问。我看了视频,你的个人日历(又称默认日历或gmail日历)ID确实是你的电子邮件,这很正常……而且你正在显示的脚本在ID字段中与我的电子邮件一起工作,我只是测试以确定(但你为什么在2012年4月创建这个#@§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§,请详细描述。谢谢你!问题解决了。问题是如果我想把这个脚本写成一个应用程序,我必须添加一个doGet()函数并调用createEvent。太好了!这帮了大忙。但是请更正:您的答案中缺少它的和getCalendarsByName
。谢谢您回答我的问题。我使用“”仔细检查了我的calendarId,发现我的calendarId与我的电子邮件地址相同。正如我所提到的,它不起作用…当我使用你给我的代码时,日志信息是“0”…你说的“0”是什么意思?它不能返回单个0,它必须包含“日历ID:…”。您是否需要一些有关如何查看记录器的提示?请随意提问。我看了视频,你的个人日历(又称默认日历或gmail日历)ID确实是你的电子邮件,这很正常……而且你正在显示的脚本在ID字段中与我的电子邮件一起工作,我只是测试以确定(但你为什么在2012年4月创建这个#@§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§,请详细描述。谢谢你!问题解决了。问题是如果我想把这个脚本写成一个应用程序,我必须添加一个doGet()函数并调用createEvent。太好了!这帮了大忙。但请更正:您的答案中缺少其s
和getCalendarsByName
。请使用注释对其进行注释。。。不是答案。请使用注释来注释。。。不是答案。谢谢s