Google Apps Script
Google Apps Script(GAS)是什麼,可以參考wiki的介紹。但我一般會把它解釋成一個後端,類似nodejs之類的。
在GAS裡面,你可以透過JavaScript去連接Google的各類服務,或是去連接Google的Firebase資料庫也是可以的。這邊我們會使用GAS來串接Google Sheets。
GAS連結Google表單
要開啟GAS的編輯器,可以從Google表單上方的工具列 工具>指令碼編輯器 或是在 Google雲端硬碟右鍵>更多>Google Apps Script(要先連結GAS應用程式),開啟後副檔名應該會是gs。
目前的GAS是可以使用es6語法的,但因為要做一些對應的設定,這邊我們會使用較舊的JavaScript語法撰寫。
1 | function doPost(e) { |
上述我們撰寫了一個doPost的function。
doPost其實就是我們在Call這隻gs檔的API,進行post時會觸發的function。
我們可以先透過e這個參數取得post的資料。
接下來透過SpreadsheetApp.openById("")
選擇要開啟哪個Google表單的檔案,再透過SpreadSheet.getSheets()[0]
綁定好選擇的檔案裡面的哪張表(0表示第一張表)。
選擇好表後,就可以透過getRange()取得表的指定格子位置,並透過setValue()或setFormula()方法來將值存入。
最後的return則是要回傳什麼內容。
GAS部署
在寫完GAS的code後,我們要部署並產生API。
選擇發佈>部署爲網路應用程式,將具有應用程式存取權的使用者改爲 “Anyone, even anonymous“ ,並點選部署。
接下來第一次部署會出現權限核對的一些設定。
基本上就是核對權限>選擇自己的帳戶>進階>前往>允許。
點選完畢後會出現下圖
那串URL就是你的API路徑。
補充
在GAS內沒有console.log(),要使用Logger.log()
GAS的goGet()和doPost()方法,不能直接return一個object。但可以轉成JSON回傳,詳細可參考。