使用 fastapi-linebot 快速建立 LINE Bot Webhook
2025-06-24 16:01:48 未分類

想快速打造一個 LINE Bot,卻不想被繁瑣的伺服器設定、HTTPS 憑證和簽名驗證卡住嗎?本文將引導你使用 fastapi-linebot
這個開源專案,結合 Docker 與 Cloudflare Tunnel,在幾分鐘內完成 LINE Bot Webhook 的建置,讓你能專注於開發聊天機器人的核心功能。
前置條件
在開始之前,請確保你已準備好以下環境與帳號:
- 已在 LINE Developers 建立專屬的 Channel,並取得 Channel secret 與 Channel access token。
- 一個 Linux 環境 (或 Windows 上的 WSL)。
- 已安裝 Docker 與 Docker Compose。
- 已安裝 cloudflared。
建置步驟
跟隨以下步驟,即可快速完成 Webhook 的部署與設定。
1. 下載專案程式碼
首先,從 GitHub 下載 fastapi-linebot
專案。
git clone https://github.com/Arkalytix/fastapi-linebot.git
假設你的專案路徑為 /home/arkalytix/projects/fastapi-linebot/
。
2. 設定環境變數
進入專案目錄,你會找到一個 .env.example
檔案。請將其複製為 .env
,並填入你在 LINE Developers 後台取得的金鑰。
# .env
LINE_CHANNEL_SECRET=your_channel_secret
LINE_CHANNEL_ACCESS_TOKEN=your_channel_access_token
3. 啟動服務
在專案根目錄下,執行以下指令,使用 Docker Compose 來建置並啟動服務。
docker compose up --build
成功啟動後,cloudflared
會自動為你註冊一個公開的 HTTPS 網址,並顯示在終端機日誌中,格式如下:
https://camps-grand-narrow-endorsement.trycloudflare.com
4. 設定 Webhook 網址
我們的 FastAPI 應用程式中,接收 LINE 平台請求的端點是 /webhook
。請將上一步取得的 cloudflared
網址與之組合,得到完整的 Webhook URL:
https://camps-grand-narrow-endorsement.trycloudflare.com/webhook
接著,回到你的 LINE Developers 後台:
- 進入 Messaging API settings 頁籤。
- 找到 Webhook settings 區塊。
- 將上述組合好的完整網址填入 Webhook URL 欄位。
- 點擊 Verify 按鈕。
如果一切順利,你會看到 Success 的提示,代表你的 Webhook 已經成功與 LINE 平台連接!
fastapi-linebot
專案解說
這個專案的核心理念是 簡化重複工作。它利用了:
- FastAPI:一個現代、高效能的 Python Web 框架。
- Cloudflared:自動建立安全的 HTTPS 通道,免去自己設定反向代理和 SSL 憑證的麻煩。
- LINE Bot SDK:專案已整合官方 SDK,自動處理了最關鍵的簽名驗證 (Signature Validation) 等基本工作。
這意味著,你無需從零開始處理基礎建設,可以直接投入開發 LINE Bot 的核心業務邏輯。
核心檔案結構
主要的開發工作都會在 services/
目錄下進行。專案已經為你規劃好基本的處理邏輯分層:
services/
[業務邏輯] - 你的主要工作目錄。services/text_handler.py
: 處理使用者傳送的文字訊息。services/follow_handler.py
: 處理使用者關注 (Follow) 或 取消關注 (Unfollow) 的事件。services/default_handler.py
: 作為預設處理器,處理所有其他未被匹配的事件類型。
現在,你可以開始修改這些檔案,打造屬於你自己的、功能強大的 LINE Bot 了!