Pages - Menu

2020年4月29日 星期三

[GAS]Google App Script 簡易使用post,get,把Google Excel當簡易資料庫

前言

有天爬文爬一爬,突然看到Google Excel可以用post跟get的方式,
將資料傳去google excel內。



正文

1.首先開啟google Excel
2.從工具->指令碼編輯器 去開啟GAS(Fig. 1 –1 ),會開啟一個編輯器的視窗(Fig .2)


(Fig.1 )

(Fig .2)

3.開始寫吧。

doPost


function doPost(e){
  var par = e.parameter;
  var keyword = par.word;

  //GET Excel id (從Fig.1 -2去查到你的ID)
  var excelID = SpreadsheetApp.openById("1Na69UPnX_RL70eaHA");
  //Get Excel Sheet Name(從Fig.1 -3去查到你的sheet Name)
  var Sheet = excelID.getSheetByName("sheet1"); 
  var LastRow = Sheet.getLastRow();
 
  Sheet.getRange(LastRow+1,1).setValue(keyword);
 
  return ContentService.createTextOutput("The word is " + keyword);
}

doGet


//回傳json
function doGet() {
  //GET Excel id (從Fig.1 -2去查到你的ID)
  var excelID = SpreadsheetApp.openById("1Na69UPnX_RL70eaHA");
    //Get Excel Sheet Name(從Fig.1 -3去查到你的sheet Name)
  var Sheet = excelID.getSheetByName("sheet1");
  var lastRow = Sheet.getLastRow();
 
  var word = Sheet.getRange(2, 1).getValue();
  // 第二種 return Json
  var JSONString = JSON.stringify({ keyWord: word })
  return ContentService.createTextOutput(JSONString)
      .setMimeType(ContentService.MimeType.JSON);
  /*  第一種 return JSON
  return ContentService
      .createTextOutput(JSON.stringify({ keyWord: word }))
      .setMimeType(ContentService.MimeType.JSON);
  */
}


程式基本上沒有什麼比較困難的,那些函數…請查文件
首先是 SpreadsheetAppsheet

4.好了之後要發佈的話,按下 發佈->部屬為網路應用程式(Fig.3)

(Fig.3)
即可使用postman去做測試了。
有一點要特別注意,這邊的Project version的意思是,你要選擇第幾版的程式去做你的webAPI
Google並不是你發佈一次就給你一個新網址。
所以你測試完了,要上新的程式,請選擇新增~不然會發現程式一直抓都抓舊的。
如果要測試的話,建議可以直接使用   發佈->從資訊清單部屬 (Fig .4)

(Fig.4)
這邊的網址,只要每一次存檔後,字串都會不一樣,可以拿這個網址來做測試。
但有一點奇怪的是,直接點網址get回傳的值網頁上是有資料的,
但postman回來的卻會說找不到網頁,猜測可能是安全性的問題,
是說發佈太多會覺得煩而已,也沒什麼實際上的差別。
ref.
利用 Google Script 將 Google Sheet試算表,變成簡易資料庫使用(寫入篇)
[教學] 利用 Google Script 發送EMAIL確認信,且不用設定Gmail帳密與SMTP
Google App Script到底是什麼?

沒有留言:

張貼留言