Google Apps Script 是速度飛快的應用程式開發平台,可讓您輕鬆地建立與Google Workspace整合的商業應用程式。您在新式 JavaScript 中編寫程式碼,並可存取 Gmail、日曆、雲端硬碟等常用 Google Workspace 應用程式。無須安裝任何程式碼,直接在瀏覽器中提供程式碼編輯器,並讓指令碼在 Google 伺服器上執行。
首先我們先到GAS網站建立一個新專案
GAS支援HTML、CSS和JavaScript,不用再多學習一種新的專屬架構,所以直接用JavaScript語法來寫就好。
重點語法
程式碼如下:
1 | function doPost(e) { |
基本上的語法都和JavaScript差不多,不過有以下幾個比較特別的地方:
- doPost(e) 代表使用post方法請求;如果要用get方法,則是使用doGet()。e 則是代表傳進來的參數。
- ContentService.createTextOutput 表示創造一個純文本內容,可以用來當作GET和POST請求的回應。詳情可參考ContentService
- GmailApp.sendEmail(),可以操作Gmail寄信,sendEmail的參數為(recipient, subject, body, options),依序表示:收件人、主旨、內容以及其他進階的參數,詳情可參考MailApp
完成Code之後可以先測試看看能不能運行,我們建立一個debug.gs檔案:
deBug
程式碼如下:
1 | function debug() { |
然後按下執行,便會顯示執行結果
如果無誤的話會看到執行完畢的通知,並且在信箱內可以收到剛剛寄的信
部署
接著到右上角的部署->新增部署作業,設定網頁應用程式,執行身分為 我 並設定 所有人 可以存取,
然後按下部署,之後頁面會跳轉至應用程式的授權頁面,代表你授權GAS操作你的gmail。
部署完成之後,複製網頁應用程式網址
然後就可以透過這網址串接API囉~
備註
當初在串接API時,原本是透過axios的方式串接,但卻一直跳出CORS的問題,而改用Jquery的$ajax之後卻沒有這個問題。
經過各種爬文之後,我猜測是axios預設的 ‘content-type’:‘application/json 會傳送預檢請求,而$ajax預設的’content-type’:‘application/x-www-form-urlencoded’ 則不會傳送預檢請求,不過即使我設定axios的content-type跳出錯誤,這邊先挖一個坑,待之後對於CORS政策更加了解時再回來填這個坑。
參考文章
stackoverflow