前言
Telegram 群組有諸多功能,在本篇文章未必能提到所有功能,且隨著 Telegram 版本更新,本文章的教學與知識可能會過期。
Telegram 機器人功能
- 1. 可以如真人一般互動
- 例如:傳送訊息、接收訊息、管理使用者(在有權限的情況下可以封鎖、刪除訊息、置頂訊息)…等。
- 2. 有詳細的 API 文檔
- 可以透過程式語言撰寫程式碼運作自己服務。
- 3. 有 Inline 查詢
- 可以在不同的聊天室透過輸入機器人的使用者名稱及查詢資料得到返回結果。
- 4. 有鍵盤按鈕
- 可以讓使用者輸入訊息的地方變成可以點擊的自訂鍵盤按鈕。
- 5. 有 Inline 鍵盤
- 可以讓聊天室中的特定訊息附加一個可以點擊的自訂鍵盤按鈕。
- 6. 可以發出帳單並收款
- 可以向使用者發出帳單並設定郵寄地址…等。
- 7. Telegram Passport
- 可以向使用者發出請求,在使用者同意後,機器人將可得到身分證明文件、真實姓名、手機號碼、住址…等。
- 8. 建立貼圖包
- 可以透過機器人建立貼圖集。
- 9. 建立遊戲
- 可以透過機器人互動玩遊戲。
機器人的介紹
在 Telegram 中,機器人就如同一位使用者,雖然可能有很多個限制,但是它就相當於一個使用者帳號。而建立它的人(擁有 Token
的人)具有完全的權限,可以控制他的機器人應該如何運作。因此,保持機器人的 Token
的安全是非常重要的事,具有機器人的 Token
相當於取得整個機器人的完整控制權。
我們可以於 Telegram 中的很多群組發現「機器人」的存在,當然每個機器人都有不同的功能,只是我們通稱它為「機器人」而已,雖然機器人很強大具有很多功能,但這些都是理論上辦得到,如果開發它的人沒有設計這項功能,則該機器人未必能做到你所預期的操作。
假設有個機器人可以查詢公車到站時間,那它可能就「只能」查詢公車到站時間,並不能作為管理群組用途的機器人,每個機器人都有它們各自的功能,必須看該開發人員如何運用 Bot API。您也可以自由地新建機器人,只不過您建立機器人後,假設您完全沒有設計它後面的運作的話,那這個機器人也是無任何功能的,僅僅是一個空殼機器人。除非您給它設計了接收到什麼樣的事件就怎麼樣回應,例如收到了一則新訊息,機器人傳送訊息回應。
最後,如果我想要建立一個機器人,那該怎麼做?首先,您必須具有「程式語言」的基礎,並且透過閱讀官方 Bot API 文檔自行開發串接該機器人。我完全不會程式語言怎麼辦?有些機器人它們提供的服務是讓您建立一個新機器人並控制它,如果您使用了這類服務,那您就不需要擁有程式語言的基礎,只需要使用其他人設計好的方案,並提供給他們機器人的 Token
即可。
機器人的類型
Telegram 中有兩種型態的機器人,正式來講只有一種,由於本篇涉及較廣,故將 Userbot 也視為機器人的一種,所以有兩種。
按照常規註冊機器人的話,將會獲得一個 Token,且類型會被歸類為「Bot」,看不到上線時間,也無法輕易地修改 Username。
但 User Bot 的類型將屬於「User」,實際上的行為是機器人,它的原理是透過客戶端模擬一個真實使用者,它將擁有一切使用者所能做到的能力。例如:取得聊天室成員清單、自由的變更 Username、建立群組…等超出一般機器人的功能。
限制
一般機器人有著許多的限制。以下我們便列出目前的特點。
- 發送訊息有傳送速度的限制。(同個群組內限每分鐘最多傳送二十則訊息,而全域限制為每秒上限三十則訊息。)
- 無法主動向未對話過的使用者發送訊息,除非對方已允許。
- 無法輕易地變更 Username。
- 無法閱讀其它機器人的訊息。
- 在頻道中,超過二日後,無法編輯、刪除其它人的訊息(具有完整編輯、刪除權限的情況)。
- 在頻道或群組中,超過二日後,可以編輯、但無法刪除該機器人自己發出的訊息(具有完整編輯、刪除權限的情況)。
- 隱私模式啟動下,且該機器人非管理員,在群組中無法閱讀非指令、非提及機器人的對話。
- 無視隱私模式是否啟動,只要該機器人為管理員,在群組中將可以閱讀所有使用者的對話(不含機器人的對話)。
- 機器人無法「主動」訂閱頻道或「主動」加入群組。
- 機器人只能以管理員的身分被加入到頻道。
- 超級群組中機器人的上限數量為 20 個,一般群組則不限制。
- 一位使用者所能建立的機器人數量上限為 20 個。
- 機器人 Username 必須是以 bot 結尾。
如何建立機器人?
使用 @BotFather 註冊即可。
詳細操作步驟請參考:Telegram 建立機器人 圖文教學
實用的機器人
官方機器人
@Stickers
:建立貼圖包的官方貼圖機器人。@vote
:建立投票的官方機器人。@gif
:搜尋 GIF 的官方機器人。@vid
:搜尋影片的官方機器人。@music
:搜尋音樂的官方機器人。@wiki
:搜尋維基百科的官方機器人。@youtube
:搜尋 Youtube 的官方機器人。@like
:讓將要發送的訊息帶有喜歡按鈕的官方機器人。@bold
:使用 Markdown 語法傳送訊息的官方機器人。@gmailbot
:收 Gmail 電子郵件的官方機器人。@githubbot
:接收 GitHub 事件通知的官方機器人。@QuizBot
:建立小測驗的官方機器人。@discussbot
:讓頻道中的訊息可以評論的官方機器人。@telegraph
:管理 Telegra.ph 文章的官方機器人。@BotFather
:建立機器人的官方機器人。
非官方機器人
@advancedpollbot
:進階投票機器人。@GroupHelpBot
:管理群組的機器人。@GroupButler_bot
:管理群組的機器人。(使用教學)@TG_index_bot
:查詢群組/頻道/機器人的機器人。@AutoChangePhotoBot
:自動換圖的機器人。@userinfobot
:取得使用者資訊的機器人。@qr_reader_bot
:轉換QR碼的機器人。@AutoRestrictBot
:自動限制新成員權限的機器人。@AntiCommandBot
:自動刪除指令訊息的機器人。@LivegramBot
:建立接收與回覆訊息客服的機器人。@ControllerBot
:建立多種格式訊息、幫助管理頻道的機器人。