Skip to content
Python:快速建立Telegram聊天機器人
📆2020-09-17 | 📂Python

寫了一個套件,雖然現在還沒啥功能,只能發送文字和照片。


也不是只有搞了個套件,還嘗試了用Sphinx自動產生文件然後托管到Read The Docs,被autodoc路徑折騰了不少時間...這是另一段故事了。雖然現在才開始研究怎麼寫Telegram Bot,也有多種程式語言的現成框架可以用,但我不想要使用高度封裝的複雜框架,所以決定一邊學習Telegram Bot API,一邊完成這個套件,希望我有足夠的時間和心力 😌

Botlegram

鏘!鏘!經過一番折騰終於發佈到Github上了,我希望能保持它的彈性,不要做多餘的事,它就只是一個Telegram Bot API的Python版本,所以功能函式命名也會盡可能地保持與Telegram Bot API methods一致。

Tutorial

準備工作:

  • 以下說明是以部署在Heroku為例,所以必須先準備一個Heroku帳號,然後建立一支APP
  • 初次使用Heroku則必須先安裝Heroku CLI
  • 下載我預先準備的Telegram Bot懶人包: echo Bot
  • 和Telegram官方帳號BotFather進行對話 (取名叫Bot Father我覺得很有趣 😆 ),按指示建立Bot取得專屬token,此token必須由你自己妥善保管,因為任何人都能使用這個token來控制你的Bot

解壓縮懶人包echoBot.zip

開啟app.py:

  • your_bot_token替換成你的專屬token
  • your_host替換成你的Heroku App網址,請注意不可忽略的斜線 e.g. "https://APP_NAME.herokuapp.com/"

部署到Heroku

打開終端機依照下方指令操作,APP_NAME替換成你的Heroku App name

shell
$ cd echoBot
$ heroku login
$ heroku git:remote -a APP_NAME
$ git add .
$ git commit -am "echo Bot"
$ git push heroku master

確認與測試

部署成功的話,可以在Heroku的APP Logs頁面看到「Webhook is already set」

shell
Starting process with command `gunicorn app:app`
[INFO] Starting gunicorn 20.0.4
[INFO] Listening at: http://0.0.0.0:10426 (4)
[INFO] Using worker: sync
[INFO] Booting worker with pid: 10
[INFO] Booting worker with pid: 11
State changed from starting to up
* [Bot] Webhook is already set
* [Bot] Webhook is already set

打開Telegram和你的機器人對話,它應該會開始鸚鵡學舌囉 🐧

Last updated: