使用 fastapi-linebot 快速建立 LINE Bot Webhook

2025-06-24 16:01:48 Category Icon 未分類

使用 fastapi-linebot 快速建立 LINE Bot Webhook

想快速打造一個 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 後台:

  1. 進入 Messaging API settings 頁籤。
  2. 找到 Webhook settings 區塊。
  3. 將上述組合好的完整網址填入 Webhook URL 欄位。
  4. 點擊 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 了!