/Job-Scraper-Bot

幫朋友做好玩的Telegram機器人,已部署到Heroku

Primary LanguagePython

Job Scraper Bot

104職缺推播機器人

做好玩的Telegram機器人,已部署到Heroku上,歡迎玩壞
Design: Hsiang-Chu Chou / Tech Support: Wen-Ya Lin
點擊加入 https://t.me/job_scraper_bot

remind

Table of contents

Application Demo

Introduction

機器人的功能很簡單不再贅述,稍微說明一下程式要點,讓同為新手剛好查到這篇的朋友可以參考一下

Telegram API

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 Drive,要先到Google APIs開通憑證,詳細可見此教學
  • client_secrets.json即是開通憑證後所得
  • 使用PyDrive處理驗證與上傳檔案等事項
  • 使用者將自身Google Drive權限開給機器人後,機器人會存下CredentialsFile,日後即不須再次驗證,取消授權即會刪除該檔案

AWS S3

  • 選擇將程式Deploy在Heroku,但Heroku是Ephemeral File System,也就是每次重啟dyno後程式生成的檔案會被清掉
  • 所以將使用者訂閱的關鍵字還有Google Drive憑證等資料存在AWS S3
  • 到S3取得憑證並建立Bucket後即可使用boto3套件進行操作

Heroku

  • Heroku部署方法可以先看此教學
  • 使用Heroku部署python-telegram-bot之機器人,參考此範例設定webhook等
  • 由於此機器人有使用時間設定,但Heroku的時區為UTC+0,參考這篇教學更改Heroku時區
  • 若使用Heroku免費版帳號,若app超過30分鐘沒被造訪,系統會自動進入休眠,會造成下一次造訪的時間延遲(並且排程的推播也不會運行...)
    • 解法:設定每25分鐘對Heroku app的網址發出GET請求,以迫使機器人不進入休眠
MIT License (2020), Hsiang-Chu Chou & Wen-Ya Lin