用雲端打造自動化環境(台南)
一、Google Apps Script (GAS)
- GAS是 Google 用 Javascript 語言 擴展 Google Apps (Gmail、試算表、文件、日曆.....)及建置 WEB 應用程式
 - GAS是一個 No Server Service 網站平台,其資源由Google提供,但有限額
 
二、實例介紹
- 假設今天想要讓他人將資料寫入我的「Google日曆」,您會怎麼做?
開放「Google日曆」權限 - 透過GAS把資料寫入,可依需求條件,做不同的選擇,如資料上傳即寫入或需核准才能寫入
 
三、實做
- 前台:Google表單(若要自已使用,非接案的話,可選擇它,開發速度快)
 - 後台:Google試算表,一般來說,GAS可以佈署在「Google表單」或「Google試算表」或其它Google Apps,不過最常用的就是「Google試算表」
 - GAS的語法主要是基於JavaScript 1.6和1.7跟1.8的部分功能。
 - 首先建立一個表單「繳費通知單」,欄位:繳費單位、繳費日期、繳費金額、備註 => 關聯 試算表
 - 「工具/指令碼編輯器」=> 命名,更改時區
 - 全天事件日曆建立 => 測試
	
//日曆id
var googleCalendarID = "日曆id";//請自行替換
/*===========================================================
  title : 日曆標題
  startDate : 日曆日期
  description : 日曆內容
  color : 日曆顏色
===========================================================*/
function setCalendar(title, startDate, description, color) {    
  startDate = new Date(startDate.replace(/-/g, "/"));//轉換日期格式 
     
  //透過ID取得日曆
  var cal = CalendarApp.getCalendarById(googleCalendarID);
     
  //沒有結束日期的全天事件
  var even = cal.createAllDayEvent(title, startDate, {description:description});
   
  //設定形成顏色(1~11)
  even.setColor(color);  
}
	
調用函式
function myFunction() { var title="日曆標題"; var startDate="2021/03/31"; var description="測試內容"; var color=11; setCalendar(title, startDate, description, color); }
 - 取得試算表標題
	
  var ss = SpreadsheetApp.getActive();//取得試算表
  var ws = ss.getActiveSheet();//取得試算表中的第一個表
  //getRange(row, col, 列數, 欄數)
  var title = ws.getRange(1, 1, 1, ws.getLastColumn()).getValues()[0];//取得表單中文欄名
	
查看變數或陣列、物件
console.log(title); - 設定觸發條件,取得填報者資料
當提交表單表,觸發取得資料 - 整理資料,替換變數=>寫入日曆
	
  var data={};
  for(i in title){
    data[title[i]] = e.values[i];
  }