用雲端打造自動化環境(台南)
一、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];
}