전 Google 애플 리케이션 스크립트에 완전히 익숙하고 양식에서 새 행을 추가하고 그 정보를 사용하여 새 캘린더를 만들 때 Google 스프레드 시트에서 정보를 가져올 간단한 스크립트를 작성하려고합니다. 행사. 여기까지 (캘린더 및 스프레드 쉬트 ID가 삭제되었습니다).Google 양식에서 Google 캘린더에 게시하는 스크립트. 승인 루프에 갇혀있다
function addToCalendar() {
//Get the spreadsheet by its id, set it as active, then select the last row to always have the most recent
var getByID = SpreadsheetApp.openById("SS ID");
SpreadsheetApp.setActiveSpreadsheet(getByID);
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadSheet.getSheets()[1];
var row = sheet.getLastRow();
//Declare variables for the required text fields and set them equal to corresponding cell values
var name = sheet.getRange(row, 2).getValue();
var subject = sheet.getRange(row, 3).getValue();
var date = (sheet.getRange(row, 4).getValue()).toDateString();
var startTime = date + " " + (sheet.getRange(row, 5).getValue()).toTimeString();
var endTime = date + " " + (sheet.getRange(row, 6).getValue()).toTimeString();
//Call the calendar and add the event
var calendar = CalendarApp.getCalendarById('CALENDAR ID');
var event = calendar.createEvent(name,
new Date(startTime),
new Date(endTime)
);
Logger.log('Event ID: ' + event.getId());
}
코드를 실행할 때 루프에서 반복적으로 앱을 인증하라는 메시지가 표시됩니다. 트리거는 양식 제출시 스프레드 시트에서 기능을 실행하도록 설정됩니다. 나는이 문제가 스프레드 시트를 호출하는 방법과 관련이 있을지도 모른다고 생각하지만이 코드를 문서에서 직접 복사하려고 시도했다. 이 부분은 혼란 스럽기 때문에 날짜를 형식화하는 데 또 다른 문제가있을 수 있습니다 (비교적 새로운 js).
매력처럼 작동합니다. – Mattayo