首页 > 解决方案 > Apps Script Advanced Calendar API - 插入带有标题的新事件 - 错误“无效的源 URL:”

问题描述

我正在使用“内置”高级应用程序脚本日历 API(不是 REST API)并尝试创建新的日历事件,但出现错误:

无效的来源网址:

我直接从日历中获取日历 ID,所以我不认为是这样。

function createCalEvent() {
  var event, calendarId, endTime, newEvent, options, 
      response, resource, startTime, title, url;

  var cal = CalendarApp.getCalendarsByName("Main Calendar");

  calendarId = cal[0].getId();//   
  Logger.log('calendarId: ' + calendarId)

  title = "Test Event Title";

  startTime = "2018-7-18T09:00:00";
  endTime = "2018-7-18T12:00:00";

  resource = {
    "start": {
      "dateTime": startTime,
      "timeZone": "GMT-08:00"
    },
    "description": "Test the description",
    "source": {
      "title": title
    }
  }

  if (endTime) {

    var o = {
      "dateTime": endTime,
      "timeZone": "GMT-08:00"
    }

    resource.end = o;
  } else {
    resource.endTimeUnspecified = true;
  }

  response = Calendar.Events.insert(resource, calendarId);
  Logger.log('response: \n' + response)

}

我正在尝试设置活动的标题。

标签: google-apps-scriptgoogle-calendar-api

解决方案


当它为 Calendar.Events.insert() 设置事件标题时,请summary在请求正文中包含该属性。source不是为了给事件标题。所以请修改如下。

修改后的脚本:

resource = {
  "start": {
    "dateTime": startTime,
    "timeZone": "GMT-08:00"
  },
  "description": "Test the description",
  "summary": "event title", // Added
  // "source": {"title": title} // Removed
}

笔记 :

  • 如果您在请求正文中使用“来源”,请同时包含source.title和。不包含时,会发生错误。source.url"source": {"title": title, "url": "http://localhost"}source.urlInvalid source url: .

参考 :


推荐阅读