這是「給不會寫程式的人的惠惠機器人開發攻略」的第二篇。

Google Apps Script (GAS) 可以實現簡單的後端功能,用來跟其他的 Google 服務結合也很方便。

Google Apps Script 的官方文件在這裡:
https://developers.google.com/apps-script/reference

接下來要開始建立一個惠惠專案了ヽ(・∀・)

Google Apps Script 設置

STEP 1. 建立新專案

首先進入 Google Apps Script 的首頁:
https://script.google.com/home
點擊左上角的「新專案」

Google Apps Script 首頁

然後就會進入程式碼介面。如果想把 GAS 的介面換成深色的可以用這個 Chrome 擴充套件

Google Apps Script 介面

STEP 2. 玩玩看

可以試試看把下面這一段程式碼貼上去
你可能還看不懂這一段程式碼。沒有關係,下一篇就是 Javascript 教學了。(°▾ °)〳
這是一個名字叫做 myFunction 的函式
這個函式裡面會宣告一個叫作 name 的變數,它的值是 "megumin"
然後利用 Logger.log() 這個函式,在記錄裡面寫下 name。

function myFunction() {

  var name = "megumin";
  Logger.log(name); // Logger.log() 是 GAS 用來記錄輸出的函式

}

把原本 GAS 裡面的 myFunction 刪掉
把這段程式碼貼上去之後點擊【執行】>【執行函式】> myFunction

執行 > 執行函式 > myFunction

然後點擊【查看】>【記錄】(或是按 Ctrl + Enter)

查看記錄

就會看到記錄裡面寫著 megumin
這個就是 GAS 用來執行單一函式,並且查看記錄的步驟了。用來除錯非常好用。

megumin


註:如果你覺得記錄等很久,一直卡在這個畫面:

可以試試看停用 V8 runtime。(停用它就代表不能用 ES6 的語法。)

停用V8

STEP 3. 發布應用程式

點擊【發布】>【部署為網路應用程式】

然後就會出現這個畫面
注意在這個畫面的第三項要設為 Anyone, even anonymous (任何人,甚至匿名使用者)

如果出現這個警告窗,只要點【進階】>【前往】就好

警告窗

之後只要一直按下一步就好

完成了ヾ(´∀ ˋ)ノ

之後每次對程式碼做修改,要使程式碼生效就要進行這個動作:
【發布】 > 【部署為網路應用程式】 > Project Version 點新增
這樣就能更新機器人了

STEP 4. 連結巴哈姆特

複製這個連結

回到創作者後台,到 Bot token 的欄位,把連結貼在 Webhook 的格子裡。這個時候再複製你的 Access Token,回到 GAS。

把這段程式碼跟 Access Token 一起放到 GAS 裡面

var ACCESS_TOKEN = "放入你的 ACCESS TOKEN";
var URL = "https://us-central1-hahamut-8888.cloudfunctions.net/messagePush?access_token=" + ACCESS_TOKEN;
var senderId;

類似這樣:

這樣就大功告成了。
senderId 是之後用來辨認傳送訊息的人是誰,所以會在這裡宣告一個全域變數

回顧一下

我們在 Google Apps Script 建立了一個惠惠專案,並且學會了如何執行特定函式,然後查看記錄。我們也發布了應用程式,然後也把 GAS 跟哈哈姆特連結起來了。

  • 執行特定函式:【執行】>【執行函式】> myFunction
  • 查看記錄:【查看】>【記錄】(或是按 Ctrl + Enter)
  • Logger.log() 是 GAS 用來記錄輸出的函式。(一般是用console.log())
  • 發布應用程式時,要把權限設為 Anyone, even anonymous (任何人,甚至匿名使用者)
  • 更新機器人的步驟:【發布】 > 【部署為網路應用程式】 > Project Version 點新增

下一篇是 Javascript 教學,會介紹 Javascript 的基本語法。

上一篇 | 回到系列文 | 下一篇

#Chatbot #Google Apps Script







你可能感興趣的文章

[vue] transition 介紹與巢狀用法

[vue] transition 介紹與巢狀用法

React Hooks - Day1

React Hooks - Day1

MTR04_1114

MTR04_1114






留言討論