簡體   English   中英

從一個Google表單提交中創建兩個Google日歷活動

[英]Create two Google Calendar events from one Google Form submission

我正在嘗試使用Google表單和Google日歷創建一個團隊隨叫隨到的計划程序。 每個團隊都可以選擇同時接聽主要和輔助電話。 到目前為止,我已經能夠成功獲取將主要選項放入Google日歷的代碼,但我無法弄清楚如何選擇將代碼放入日歷中的代碼。 我已經搜索過其他人的答案而無法找到任何內容,或者我只是不明白,因為我對編碼很新。 提前感謝任何可能提供幫助的人。

我應該清楚並稱贊一位名叫Jesse Spevack的紳士( http://www.jessespevack.com/blog/2016/2/9/turn-a-google-form-response-into-a-calendar -event )誰提供了基礎。

這是我到目前為止的代碼......

 //Load the Moment.js library once. var moment = Moment.load(); var GLOBAL = { //the id of the form we will use to create calendar events formId : "xxxxx", //the id of the calendar we will create events on calendarId : "xxxx", //a mapping of form item titles to sections of the calendar event formMap : { eventTitle: "Team Primary On-call", startTime : "Primary start date/time", endTime: "Primary end date/time", description: "Primary On-call Contact", }, } function onFormSubmit() { var eventObject = getFormResponse(); var event = createCalendarEvent(eventObject); } function getFormResponse() { // Get a form object by opening the form using the // form id stored in the GLOBAL variable object var form = FormApp.openById(GLOBAL.formId), //Get all responses from the form. //This method returns an array of form responses responses = form.getResponses(), //find the length of the responses array length = responses.length, //find the index of the most recent form response //since arrays are zero indexed, the last response //is the total number of responses minus one lastResponse = responses[length-1], //get an array of responses to every question item //within the form for which the respondent provided an answer itemResponses = lastResponse.getItemResponses(), //create an empty object to store data from the last //form response //that will be used to create a calendar event eventObject = {}; //Loop through each item response in the item response array for (var i = 0, x = itemResponses.length; i<x; i++) { //Get the title of the form item being iterated on var thisItem = itemResponses[i].getItem().getTitle(), //get the submitted response to the form item being //iterated on thisResponse = itemResponses[i].getResponse(); //based on the form question title, map the response of the //item being iterated on into our eventObject variable //use the GLOBAL variable formMap sub object to match //form question titles to property keys in the event object switch (thisItem) { case GLOBAL.formMap.eventTitle: eventObject.title = thisResponse; break; case GLOBAL.formMap.startTime: eventObject.startTime = thisResponse; break; case GLOBAL.formMap.endTime: eventObject.endTime = thisResponse; break; case GLOBAL.formMap.description: eventObject.description = thisResponse; break; } } return eventObject; } function createCalendarEvent(eventObject) { //Get a calendar object by opening the calendar using the //calendar id stored in the GLOBAL variable object var calendar = CalendarApp.getCalendarById(GLOBAL.calendarId), //The title for the event that will be created title = eventObject.title, //The start time and date of the event that will be created startTime = moment(eventObject.startTime).toDate(), //The end time and date of the event that will be created endTime = moment(eventObject.endTime).toDate(); //an options object containing the description and guest list //for the event that will be created var options = { description : eventObject.description, }; try { //create a calendar event with given title, start time, //end time, and description and guests stored in an //options argument var event = calendar.createEvent(title, startTime, endTime, options) } catch (e) { //delete the guest property from the options variable, //as an invalid email address with cause this method to //throw an error. delete options.guests //create the event without including the guest var event = calendar.createEvent(title, startTime, endTime, options) } return event; } 

改變這個功能:

function onFormSubmit() {
  var eventObject = getFormResponse();
  var event = createCalendarEvent(eventObject);
}

至:

function onFormSubmit() {
  var eventObject, calendarTwoID;

  eventObject = getFormResponse();

  calendarTwoID = 'Put the ID of the second calendar here';

  createCalendarEvent(eventObject);//Create first event
  createCalendarEvent(eventObject, calendarTwoID);//Create second event
}

createCalendarEvent函數更改為:

function createCalendarEvent(eventObject, calendarID) {
  //Get a calendar object by opening the calendar using the
  //calendar id stored in the GLOBAL variable object
  var calendar;

  if (calendarID) {//If ID is passed in
    calendar = CalendarApp.getCalendarById(calendarID);//use the passed in ID
  } else {//Otherwise use the global ID
    calendar = CalendarApp.getCalendarById(GLOBAL.calendarId);
  }

  //The title for the event that will be created
  var title = eventObject.title,
  //The start time and date of the event that will be created
  startTime = moment(eventObject.startTime).toDate(),
  //The end time and date of the event that will be created
  endTime = moment(eventObject.endTime).toDate();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM