Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌脚本谷歌日历类型错误:无法调用方法";createEvent";空的_Google Apps Script_Google Calendar Api - Fatal编程技术网

Google apps script 谷歌脚本谷歌日历类型错误:无法调用方法";createEvent";空的

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

我正试图遵循谷歌脚本日历中的示例。除了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");
      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]
选择第一个日历

您也可以使用
getDefaultCalendar()
使用默认日历,这是附加到gmail地址的日历。 所有这一切都在下面的例子中得到了很好的说明

这段小代码将允许您检查您拥有或订阅的所有日历的ID

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]
选择第一个日历

您也可以使用
getDefaultCalendar()
使用默认日历,这是附加到gmail地址的日历。 所有这一切都在下面的例子中得到了很好的说明

这段小代码将允许您检查您拥有或订阅的所有日历的ID

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
s
。谢谢您回答我的问题。我使用“”仔细检查了我的calendarId,发现我的calendarId与我的电子邮件地址相同。正如我所提到的,它不起作用…当我使用你给我的代码时,日志信息是“0”…你说的“0”是什么意思?它不能返回单个0,它必须包含“日历ID:…”。您是否需要一些有关如何查看记录器的提示?请随意提问。我看了视频,你的个人日历(又称默认日历或gmail日历)ID确实是你的电子邮件,这很正常……而且你正在显示的脚本在ID字段中与我的电子邮件一起工作,我只是测试以确定(但你为什么在2012年4月创建这个#@§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§,请详细描述。谢谢你!问题解决了。问题是如果我想把这个脚本写成一个应用程序,我必须添加一个doGet()函数并调用createEvent。太好了!这帮了大忙。但请更正:您的答案中缺少其
getCalendarsByName
s
。请使用注释对其进行注释。。。不是答案。请使用注释来注释。。。不是答案。谢谢