做好玩的Telegram機器人,已部署到Heroku上,歡迎玩壞
Design: Hsiang-Chu Chou / Tech Support: Wen-Ya Lin
機器人的功能很簡單不再贅述,稍微說明一下程式要點,讓同為新手剛好查到這篇的朋友可以參考一下
- 使用python-telegram-bot建構機器人
- 對104進行爬蟲(不是很重要XD)
- 使用PyDrive處理Google Drive
- 將資料儲存在AWS S3上
- 部署在Heroku上
Important - 建議先看過這個Tutorial - Telegram Bot with Python (CoinMarketCap),先用Flask建構機器人並對Telegram API有一定的認識後再使用wrapper
- 本機器人使用python-telegram-bot wrapper建構
- 參考該文件的範例即可做出一個機器人 Tutorial: Your first Bot (記得先找@BotFather)
- 注意該範例的機器人使用的是較適用於測試的getUpdates,而非Webhook,可以使用Serveo或是ngrok服務架設暫時的Webhook,稍後會提到部署在Heroku時的Webhook設定
- 請參考此篇104爬蟲教學
- 欲讓程式連結到Google Drive,要先到Google APIs開通憑證,詳細可見此教學
- client_secrets.json即是開通憑證後所得
- 使用PyDrive處理驗證與上傳檔案等事項
- 使用者將自身Google Drive權限開給機器人後,機器人會存下
CredentialsFile
,日後即不須再次驗證,取消授權即會刪除該檔案
- 選擇將程式Deploy在Heroku,但Heroku是Ephemeral File System,也就是每次重啟dyno後程式生成的檔案會被清掉
- 所以將使用者訂閱的關鍵字還有Google Drive憑證等資料存在AWS S3
- 到S3取得憑證並建立Bucket後即可使用boto3套件進行操作