LV. 37
GP 2k

【閒聊】養成機器人教學(Day 9) Google App Script的除錯

樓主 敵會跪 jack12345520
GP1 BP-
前言

我的教學 在前一天其實已經告一段落了
在此  我想給這幾天都在看這系列的文章的你
一個考題
「試著做做看 一個友好度系統的BOT」吧!


那麼這章 要說的是什麼呢?
關於Google App script的除錯


GAS的 Logger.log

最一開始的botReply()
是用來給BOT傳訊息給我們用的函式
在使用時大概是以下這個方式

  botReply("這是一段訊息",senderId)  

我們傳的這一段訊息 是字串
但是萬一是其他形式的資料呢?
物件?陣列?數字?
此時就會出錯

但是新手的你
可能不知道為什麼這個函式
執行時會出現錯誤?
錯誤在哪?  應該要怎麼排除?
我們這個時候通常會使用Logger.log函式除錯

例如:
機器人傳不出去訊息
會不會可能是傳的訊息  形式不對?
你想知道  你傳的這個訊息長什麼樣子
想做測試看看



再直接執行這個函式
就是這個很像「播放」的按鈕




那這個紀錄 可以在哪邊看到呢?




這兩個紀錄有什麼不同呢?
第一個是可以看到 GAS執行的所有東西 包含你要紀錄的東西
第二個是只有記錄的資料
如下






回到最一開始的問題
那這個botReply()範例為什麼傳不出去訊息呢?
因為要傳的訊息必須是字串
如果你想傳一個數字
那就必須要轉成字串
利用原生JS的toString()函式即可

var msg = 1;  
botReply(msg.toString(),senderId);


又或者你想傳一個物件 方便查看
利用原生JS的JSON.stringify()函式
把JSON物件轉換成字串

var msg = { item:'apple' };  
botReply(JSON.stringify(msg),senderId);

怎麼樣都無法正確執行

你是否也遇過這樣的情形?
確定自己打的都正確了  
都檢查過了  也有儲存專案
就是沒辦法正常執行   
那可能是因為GAS的快取機制

這時我們要到【發佈】->【部屬為應用程式】
這邊去新增一個版本
按更新即可解決這個問題




結語

Logger.log對你除錯資料的形態方面很有幫助

其實GAS在執行前都會Error提醒
你可能出現的錯誤  對我們除錯基本上已經足夠
另外還有新手比較常犯的錯誤
像是標點符號(逗點、冒號、分號..等)
缺漏的情況

如果想要知道更詳盡的執行的情況
可以藉由主控台裡的
【查看】->【StackDriver Logging】
但是 需要使用到付費方案
這部分我沒有經濟能力
交給其他巴友測試

1
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員:

0 筆精華,吸收日月精華中
一個月內新增 0
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】