本篇大綱
commands 代替選單的快速功能表
在上一篇寫telegram bot keyboard裡,就有寫到commands了,就是在telegram上打 /
時,會出現的功能清單。
telegram keyboard的建立比較麻煩,如果說機器人的功能很少,或是不需要到第二層選單,用commands是比較快的。
本篇就來紀錄如何在telegram bot上制作命令列表。
關於commands
telegram bot commands,這邊翻作命令列,一般看一些程式語言教學,都會說開啟終端機或命令提示字元後,下command去安裝功能之類的,而telegram的command又是長這樣:

因此覺得翻作命令列會比較好理解。
在申請新的telegram bot,跟BotFather溝通時,就是在用commands功能了,只是一開始在用沒有解譯會不知道這就是機器人的commands。
建立telegram bot commands
建立機器人的commands,不用寫任何的code,但在判斷使用者按了哪個commands後執行不同的function就需要了。
首先,要先跟BotFather對話,輸入/mybot
,然後點要建立commands的機器人帳號,再點選Edit Bot,就會看見選單中出現Edit Commands:

點擊Edit Commands後,就會出現該送什麼訊息給BotFather,才會讓你的機器人有Commands:
OK. Send me a list of commands for your bot. Please use this format:
command1 – Description
command2 – Another description
比方說,我想要機器人的Commands,在輸入/
後會出現的選單是以下:
/start 開啟keyboard
/test1 執行功能1
/test2 執行功能2
那只要貼以下訊息給BotFather就行:
這是廣告,點擊一下可以幫本站多個一點點的廣告收入,謝謝
start - 開啟keyboard
test1 - 執行功能1
test2 - 執行功能2
送出給BotFather後,就會收到更新成功的訊息:

接著打開剛設定的機器人視窗,就會看見輸入訊息欄的旁邊多了「/」的按鈕,按下去或是直接輸入/
,就會看到剛設定的commands:


收到commands後
當使用者按下commands後,就會發送那個command的訊息:

機器人收到的訊息,json就會是這樣子:

所以我們只要寫一個判斷message.text是/start
時,要執行某個function的code就行了,以下是用google apps script的範例:
怎麼使用google apps script當telegram bot的webhook,請參考這篇:
Telegram bot學習筆記-2:用google apps script接收/推播訊息
Telegram Bot學習筆記系列


跟firebase好像不能同時使用 新增這個上去之後 資料庫就接收不到訊息了
嗯?不會啊,command line只是輔助使用者輸入指定的文字,在GAS裡doPost還是可以寫Firebase的東西。