Telegram Bot 學習筆記 – 4:命令列 Commands

/

Commands 代替選單的快速功能表

在上一篇寫 Telegram Bot Keyboard 裡,就有寫到 Commands 了,就是在 Telegram 上打 / 時,會出現的功能清單。

Telegram Keyboard 的建立比較麻煩,如果說機器人的功能很少,或是不需要到第二層選單,用 Commands 是比較快的。

本篇就來紀錄如何在 Telegram Bot 上製作命令列表。


關於 Commands

Telegram Bot Commands,這邊翻作命令列,一般看一些程式語言教學,都會說開啟終端機或命令提示字元後,下 Command 去安裝功能之類的,而 Telegram 的 Command 又是長這樣:

telegram bot commands
Telegram Bot Commands

因此覺得翻作命令列會比較好理解。

在申請新的 Telegram Bot,跟 BotFather 溝通時,就是在用 Commands 功能了,只是一開始在用沒有解譯會不知道這就是機器人的 Commands。


建立 Telegram Bot Commands

建立機器人的 Commands,不用寫任何的 code,但在判斷使用者按了哪個 Commands 後執行不同的 function 就需要了。

首先,要先跟 BotFather 對話,輸入/mybot,然後點要建立 Commands 的機器人帳號,再點選 Edit Bot,就會看見選單中出現 Edit Commands

BotFather的Edit Commands
BotFather 的 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 後,就會收到更新成功的訊息:

telegram bot commands設定成功訊息
Telegram Bot Commands 設定成功訊息

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

機器人多一個「/」的按鈕
機器人多一個「/」的按鈕
成功為機器人建立了commands
成功為機器人建立了 Commands

收到 Commands後

當使用者按下 Commands 後,就會發送那個 Command 的訊息:

收到command的訊息
收到 Command 的訊息

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

機器人收到command訊息的json
機器人收到 Command

所以我們只要寫一個判斷 message.text 是 /start 時,要執行某個 function 的 code 就行了,以下是用 Google Apps Script 的範例:

怎麼使用 Google Apps Script 當 Telegram Bot 的 Webhook,請參考這篇:

Telegram Bot 學習筆記 – 2:用 Google Apps Script 接收 / 推播訊息

這是廣告,點擊一下可以幫本站多個一點點的廣告收入,謝謝


Telegram Bot 學習筆記系列

  1. 用 GCP + Node.js 接收 / 推播訊息
  2. 用 Google Apps Script 接收 / 推播訊息
  3. 鍵盤 Keyboard
  4. 命令列 Commands
  5. 取得使用者大頭照
  6. Google 表單提交時收到通知
Summary
Telegram Bot 學習筆記 - 4:命令列 Commands
Article Name
Telegram Bot 學習筆記 - 4:命令列 Commands
Description
本篇大綱:commands 代替選單的快速功能表、關於commands、建立telegram bot commands、收到commands後。telegram keyboard的建立比較麻煩,如果說機器人的功能很少,或是不需要到第二層選單,用commands是比較快的。
Augustus
Let's Write
Let's Write
https://letswrite.tw/wp-content/uploads/2020/08/logo_512.jpg

隨選筆記文

Vue

Nuxt.js 一些好用的設定

Google Maps

Google Maps API 學習筆記 – 4:Place API 自動完成地址、地點評論摘要

Vue

用 Storybook 做一個 UI 整理集

API

GitHub API:建立 Issue、Comment – GitHub App

Bot Telegram

Telegram Bot 學習筆記 – 6:Google 表單提交時收到通知

WordPress

Ubuntu 安裝 WordPress – 1:VirtualBox、Ubuntu 20.04

Bot Telegram

Telegram Login Widget,製作用 Telegram 登入功能

Front-End

用 CSS :target 製作頁籤、手風琴功能

Bot LINE

LINE Bot:X-Line-Signature 簽名驗證 範例

Google Others

用 reCAPTCHA v3 來做非機器人驗證

以下是留言,但關於留言的部份必需先讓你們知道:

本站的文章都是 Augustus 因為覺得有趣,才會實作並整理成筆記文而後進行發表。

如果留言是希望把 Demo 改成「你想要」的樣子,或是把功能改成「符合你需求」的樣子,

Sorry~ 除非那修改是 Augustus 也有興趣的,不然不會幫你們寫程式去面對工作或是交作業。

未來這類的留言不會再主動回覆。😎

另外,公開信箱是為了讓金流驗證用,

因為之前遇過幾次回信協助解決問題後,對方卻一聲謝謝也沒有,就這樣拿去幫工作交差。

因此決定不再回覆信件,有疑問就利用留言功能囉。

訂閱
通知
guest
2 Comments
最舊
最新
Inline Feedbacks
看所有留言
ha ha
ha ha
1 年 之前

跟firebase好像不能同時使用 新增這個上去之後 資料庫就接收不到訊息了