星期三, 7月 30, 2025

[GAS] 部屬網頁程式

寫一隻 .gs 程式,該程式內容為 insert 一筆資料進入 Google SpreadSheets,把 .gs 程式進行部屬後,並透過 Edge、Postman 進行測試 ,藉此理解 Google Apps Script 部屬功能

程式碼 (.gs) 符合下列規定,即可發布為網頁應用程式: 
  • 包含 doGet(e) 或 doPost(e) 函式。 
  • 這個函式會傳回 HTML 服務 HtmlOutput 物件或內容服務 TextOutput 物件。
當向網路應用程式傳送
  • HTTP GET Request 時,執行 doGet(e) 
  • HTTP POST Request 時,執行 doPost(e)
而 e 引數內容可以參考官方文章-request parameter,該範例會用上 e.parameter

.gs Code
function doGet(e) {
  return Insert(e);
}

function doPost(e) {
  return Insert(e);
}

function Insert(e) {

  let spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); 
  let sheet = spreadSheet.getSheetByName("工作表1");
  let now = Date();
  // 使用 e.parameter 來抓傳遞進來的參數
  let data = [now , e.parameter.UserName, e.parameter.Desc];
  sheet.appendRow(data);

}
部屬為網頁程式

右上角有藍色 [部屬] 按鈕

點擊 [部屬] 按鈕 => 新增部屬作業

新增部屬作業 => 選擇 [網頁應用程式],之後再進行部屬就不用選擇
填寫部屬內容資訊
  • 說明:預設為 [未命名],通常會自行輸入有意義的名稱
  • 執行身分:[我 (OOXX@gmail.com)] 或 [存取網頁應用程式的使用者]
  • 誰可以存取:[只有我自己]、[所有已登入 Google 帳戶使用者]、[所有人]

完成部署作業後,可以複製該網頁應用程式網址來使用
Edge、Postman 進行測試

網頁應用程式網址 (exec 結尾)加上問號 (?),再加上參數 UserName=使用者姓名&Desc=文字描述
https://script.google.com/macros/s/AKfycbzHzWP/exec?UserName=使用者姓名&Desc=文字描述

Edge 模擬 http get request、Postman 模擬 http post request,下方只記錄 Postman     

從 Goolge SpreadSheets 內資料比對 GAS 執行項目來觀察,確定 Edge 因為發出 http get request 跑 doGet(e),Postman 發出 http post request 跑 doPost(e)

沒有留言:

張貼留言