把 LINE 官方帳號或群組變成可接 AI、可接資料、可部署的工作流入口。先手刻簽章驗證、webhook 解析、Reply API,再用官方 SDK 拿生產力。
這頁讓你 5 分鐘知道這是什麼、能幹嘛、真的會動。要逐行、踩雷、部署的完整版,在實戰手冊裡。
想用 LINE 做客服、訂單、點餐、內部通知或群組助理,常卡在「LINE webhook 怎麼收?簽章怎麼驗?怎麼把使用者訊息交給 AI 再回覆出去?」
這個範本把 LINE 整合拆成兩軌:前半段從零手刻 HMAC-SHA256 簽章驗證、webhook 事件解析、Reply API,看懂協定本身;後半段用官方 line-bot-sdk 重寫同樣的功能當對照組。本機這一段(安裝、啟動、簽章驗證)完全不需要 LINE 帳號就能跑完。
resolve_reply 永遠是你自己的)。需要 uv 與 Git。本機這段完全不需要 LINE 帳號或任何 AI key(預設 AI_PROVIDER=echo)。
git clone https://github.com/yazelin/linebot-ai-starter.git
cd linebot-ai-starter
uv sync
uv run uvicorn app.main:app --reload --port 8000
INFO: Started server process [790943]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
curl http://127.0.0.1:8000/health
{"ok":true}
/health 回 {"ok":true},就代表服務有起來、路由有通。下一步在本機自己算一個正確簽章驗證簽章機制:正確簽章回 200、錯誤或沒帶簽章回 403,證明簽章驗證真的在擋人。前半段你手刻了三件事:HMAC 簽章驗證、webhook 事件解析、Reply API。後半段用官方 line-bot-sdk v3 重寫同樣的功能,體會「同樣的事,SDK 少寫一大截」。
| 面向 | 完全手刻 app/line.py | line-bot-sdk app/line_sdk.py |
|---|---|---|
| 簽章驗證 | hmac.new + base64 + compare_digest | WebhookParser(secret).parse(...) |
| 事件解析 | raw dict:e["message"]["text"] | typed MessageEvent / TextMessageContent |
| Reply API | 手打 httpx.post + 自組 JSON | reply_message(ReplyMessageRequest(...)) |
| 回覆邏輯 | resolve_reply() | 共用同一個 resolve_reply() |
| 富訊息 | 自己拼巢狀 JSON | typed QuickReply / FlexMessage |
核心一句:SDK 幫你做掉協定樣板,但你的 bot 邏輯永遠是你自己的責任。同一份 parity 測試對兩種寫法都過,證明行為完全一致。完整對照在 docs/08。
這頁是快速了解;下面每一章都是完整內容,在 GitHub 上點開就能讀。
這頁是快速了解。逐行讀懂、簽章與安全邊界、踩雷清單、部署、改成你的場景都在實戰手冊裡。