Sean 韋詠祥
Note:
日期:2023-07-22(六)Day 3
課程時間:14:30 - 17:30
14:30 - 15:30 (60 min) 建立環境、Echo Bot、晚餐吃什麼
15:40 - 16:30 (50 min) 保存狀態、隱私模式、修改資訊
16:40 - 17:30 (50 min) 報時機器人、猜拳 Bot、HTTP 喵咪
Day 1 下午 yc 帶 1 Hr 認識 TG Bot
Day 3 上午 Package、爬蟲
前一堂 廣度課程(AI、Arduino)
晚餐後為黑客松時段
Note:
我的第三堂課
Day 1 晚上 廣度課程 網路治理(選)
Day 2 晚上 Py Module
Day 3 下午 TG Bot 開發(這堂)
Note:
給 3 分鐘確認已登入 TDesktop
14:35 繼續
Note:
取得 Bot Token
14:35 開始
先照簡報講一次 2 min
實際操作一次 3 min
再留時間給大家實作 5 min
進階 + 緩衝 5 min
14:50 繼續
點擊 @BotFather 並按下「START」
使用 /newbot
指令,輸入名字、@username
這串 12345:AAJqs_w-4
格式的文字就是你的 Token
URL: https://api.telegram.org/bot<TOKEN>/getMe
/revoke
指令重置Note:
14:40 開始
講解 2 min
示範 3 min
實作 5 min
14:45 繼續
進階 5 min
停在這,先給學員實作
過五分鐘介紹 getUpdates(進階)
URL: https://api.telegram.org/bot<TOKEN>/getUpdates
Note:
14:45 介紹
實作到 14:50 繼續
撰寫你的第一隻 Telegram 機器人
Note:
確認完 token 有效
改用 Python 處理
14:50 開始
建立環境、安裝套件
講解 3 min
學員操作 7 min
15:00 繼續
mkdir ~/tg-bot
)code .
)poetry init
)指令:poetry add pyTelegramBotAPI
Note:
14:50 開始
講解 3 min
學員操作 7 min
15:00 繼續
Note:
15:00 開始
下一頁詳細需求
請寫出你的第一隻 bot
/ping
回覆 PONG
print()
說已上線可以從 echo_bot.py 範例開始修改
Note:
15:00 開始
講課 3 min
學員練習 7 min
到 15:10 回來
帶學員操作 5 min
不只我有選擇障礙吧…?
Note:
15:15 開始
講解 5 min
學員實作 10 min
15:30 下課
休息到 15:40
示範 5 min
緩衝 5 min
每次到了吃飯時間
為了晚餐要吃什麼都煩惱好久
學會 Telegram Bot 開發的你
決定做一隻 Bot 解決世紀難題
Note:
15:15 開始
講解 5 min
學員實作 10 min
15:30 下課
休息到 15:40
示範 5 min
緩衝 5 min
建立 foods
全域變數
在收到 /add xxx
指令時
把 xxx
放進 foods
列表
然後回覆 okay
告訴使用者目前有哪些美食
合併字串後,用一則訊息發送
幫使用者決定晚餐要吃什麼
從美食清單中,隨機挑一個給使用者
Hint:可以用昨天教到的 random
函式庫
基本需求:
/add
新增品項/list
列出所有品項/eat
決定隨機美食Note:
提醒學員 function 名稱不要撞 keyword
先往後介紹進階功能、官方文件
再翻回來這頁放著
15:15 開始
講解 5 min
學員實作 10 min
15:30 下課
休息到 15:40
示範 5 min
緩衝 5 min
15:50 繼續
/help
使用說明/remove
我不喜歡吃這個Note:
給提早做完的學員練習
不留講解/示範時間
再往後翻一頁,講完 msg 再開始練習
練習自己看文件 (⁎⁍̴̛ᴗ⁍̴̛⁎)
https://pytba.readthedocs.io/en/latest/types.html#telebot.types.Message
Hint: 常用的有 from_user、text、chat、date
Note:
給提早做完的學員參考
不留講解/示範時間
講完後,先翻回去
15:30 - 15:40 起身活動筋骨
Note:
14:30 - 15:30 (60 min) 建立環境、Echo Bot、晚餐吃什麼
15:40 - 16:30 (50 min) 保存狀態、隱私模式、修改資訊
16:40 - 17:30 (50 min) 報時機器人、猜拳 Bot、HTTP 喵咪
15:40 回到前面,示範 Dinner Bot
用 JSON 檔儲存當前狀態
Note:
15:50 開始
講解示範 3 min
學員實作 7 min
16:00 繼續
Note:
吃飯前 Vincent 帶過基礎
請儲存在 foods.json
Note:
16:00 開始
講解 2 min
實作 3 min
16:05 繼續
請加到你們的小隊群
Note:
16:00 開始
講解 2 min
實作 3 min
16:05 繼續
Note:
16:05 開始
講解示範 3 min
實作 7 min
16:15 繼續
Ref: Bot FAQ
Note:
My Bot > @bot > Bot Settings > Group Privacy > Turn on
設定 Privacy Mode
Note:
16:05 開始
講解示範 3 min
實作 7 min
16:15 繼續
現在,輸入 /add 美食
大家都收得到
開始大亂鬥吧!
Note:
不要洗板
Note:
16:15 開始
指令列表 5 min
16:20 繼續
相關資訊 10 min
16:30 下課休息
16:40 繼續課堂
Note:
16:15 開始
指令列表 5 min
16:20 繼續
相關資訊 10 min
找 Bot Father > Edit Bot > Edit Commands
指令格式:
Edit Botpic
小技巧:https://picsum.photos/1280/1280
Edit About
Edit Description / Edit Desc Picture
小技巧:https://picsum.photos/640/360
16:30 - 16:40 找隊友聊聊題目
Note:
14:30 - 15:30 (60 min) 建立環境、Echo Bot、晚餐吃什麼
15:40 - 16:30 (50 min) 保存狀態、隱私模式、修改資訊
16:40 - 17:30 (50 min) 報時機器人、猜拳 Bot、HTTP 喵咪
Inline Keyboard
Note:
16:40 Intro + Demo
16:45 實作
16:50 教學
16:55 繼續
Code: https://tg.pe/XmN
可參考簡報前一頁寫法
Note:
16:40 Intro + Demo
16:45 實作
16:50 教學
16:55 繼續
Inline Keyboard
Note:
16:55 Intro + Demo
17:00 實作 10 min
17:10 教學
17:15 繼續
基本需求:
Note:
16:55 Intro + Demo
17:00 實作
17:10 教學
17:15 繼續
Inline Bot
Note:
17:15 介紹示範
17:20 實作
17:25 教學
17:30 下課
Note:
17:15 介紹示範
17:20 實作
17:25 教學
17:30 下課
自由練習 & QA
投影片連結:https://hackmd.io/@Sean64/tg-bot-sitcon2023
Note:
時間規劃
Time | Topic | Duration |
---|---|---|
14:30 ~ 14:35 | 開場、課前準備 | 5 min |
14:35 ~ 14:50 | 建立 Bot | 15 min |
14:50 ~ 15:00 | 安裝 telebot | 10 min |
15:00 ~ 15:15 | Echo Bot | 15 min |
15:15 ~ 15:30 | 晚餐吃什麼 | 15 min |
15:30 ~ 15:40 | 中場休息 | 10 min |
15:40 ~ 15:50 | 晚餐吃什麼 示範 | 10 min |
15:50 ~ 16:00 | 保存狀態 | 10 min |
16:00 ~ 16:05 | 邀請加入群組 | 5 min |
16:05 ~ 16:15 | 隱私模式 | 10 min |
16:15 ~ 16:20 | 指令列表 | 5 min |
16:20 ~ 16:30 | 修改 Bot 資訊 | 10 min |
16:30 ~ 16:40 | 中場休息 | 10 min |
16:40 ~ 16:55 | 報時機器人 | 15 min |
16:55 ~ 17:15 | 猜拳 Bot | 20 min |
17:15 ~ 17:30 | HTTP 喵咪 | 15 min |