Skip to content

Instantly share code, notes, and snippets.

@rs6000
Last active May 8, 2020 03:48
Show Gist options
  • Save rs6000/25d4eb5b89ca091f643ec7962ee5e81f to your computer and use it in GitHub Desktop.
Save rs6000/25d4eb5b89ca091f643ec7962ee5e81f to your computer and use it in GitHub Desktop.
02_TelegramBotDeployToHeroku

Deploy Your TelegramBot to Heroku (with Django)

本篇內容是將Telegram ChatBot 佈署到 Heroku網站上,所以需要有Heroku 的帳號,沒有的請註冊一個(Free)
程式完全沒有更動,所以直接用上一篇完成的範例程式。

快速懶人包:

直接使用本篇的範例程式:

$ git clone https://github.com/rs6000/02-DeployYourTelegramBotToHeroku
$ cd mysite
$ pip install -r requirements.txt

填入TelegramBot的token:

# mysite/myapp/views.py
bot=telebot.TeleBot('請輸入你的token!!!')

這個範例基本上都已經把需要的檔案都準備好了,但還是解說一下
這次把ChatBot佈署到Heroku有新增或修改那些檔案。

  • 新增 Procfile
  • 新增 runtime.txt
  • 修改 mysite/wsgi.py
  • 修改 mysite/setting.py
  • 修改 .gitignore

佈署到Heroku

請先準備好以下的東西

  • Git
  • 申請 Heroku 帳號 & 安裝 Heroku CLI 以下操作流程都是在終端機介面下(命令提示字元)
$ heroku login
$ heroku create 專案名稱
$ git init
$ heroku git:remote -a 專案名稱
$ heroku config:set DISABLE_COLLECTSTATIC=1
$ git add .
$ git commit -m "add your commit"
$ git push heroku master
$ heroku run python manage.py migrate (可省略此步驟)
$ heroku run python manage.py createsuperuser (可省略此步驟)
$ heroku ps:scale web=1

設定 Webhook

格式:
https://api.telegram.org/bot{$token}/setWebhook?url=https://專案名稱.herokuapp.com/api/telegram

把上面的{token}換成自己申請的token
專案名稱就是在heroku建立的專案,替換好後,貼到瀏覽器上

打開Telegram測試

圖片1

Telegram ChatBot 後台管理

這個Bot是架在Django上面,所以是有內建後台管理的

網址格式:
https://專案名稱.herokuapp.com/admin/

預設的帳號密碼都是 admin 圖片2 這個後台管理,目前只有一個功能,會記錄User的ID,所有跟Bot對話的User都會記錄在後台的MYAPP/Users 裡面

最後

後來我才理解網路上有關Telegram ChatBot為什麼大多是用單檔或Flask框架,因為這樣最簡單。用Django就要修改一些檔案跟url的設定。

剩下的就自己需要什麼就加上去吧 :)


Reference:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment