LINE Bot(LINE 機器人)是台灣商家最愛用的數位工具之一。無論是自動回覆、預約系統還是 AI 客服,都建立在 LINE Bot 的基礎上。這篇教學會帶你了解 LINE Bot 開發的完整流程,幫你評估到底要自己動手還是找人外包。
開發 LINE Bot 需要什麼?
必備條件
- LINE 帳號:用來登入 LINE Developer Console
- LINE 官方帳號:到 LINE Official Account Manager免費建立
- LINE Developer 帳號:到 LINE Developers註冊
進階功能還需要
- 程式開發能力:Python 或 Node.js(最常用的兩種語言)
- 伺服器:用來部署你的 Bot 後端程式(雲端主機或 VPS)
- HTTPS 網域:LINE Webhook 要求 HTTPS,可用 ngrok 測試或自有網域
- 資料庫(選配):如果需要儲存用戶資料或預約記錄
不會寫程式?LINE 官方帳號內建「自動回應訊息」功能,可以設定簡單的關鍵字回覆,不需要寫任何程式。但功能有限,想做進階功能就需要開發了。
LINE Developer Console 設定
LINE Developer Console 是管理你的 LINE Bot 的地方。以下是基本設定步驟:
- 建立 Provider:登入 LINE Developers 後,建立一個 Provider(提供者),填入你的品牌名稱
- 建立 Messaging API Channel:在 Provider 底下建立一個 Messaging API 的 Channel
- 取得重要資訊:
- Channel Secret:用來驗證 LINE 送來的請求
- Channel Access Token:用來發送訊息給用戶
- 設定 Webhook URL:填入你的伺服器位址,LINE 會把用戶的訊息送到這個位址
- 關閉自動回應:如果你要用程式控制回覆,記得到 LINE Official Account Manager 關閉「自動回應訊息」
30 分鐘實作:你的第一個 LINE Echo Bot
看完前面的概念,最快驗證自己懂的方式就是動手做一個。下面這段程式碼是我這幾年帶上 100+ 位讀者複現過的最小 LINE Bot — 用戶發什麼,Bot 就回什麼(echo)。30 分鐘從零跑起來,含部署。
需要的東西
- LINE Developers 帳號(已建好上面那 5 步驟)
- Python 3.9+ 環境(或 Node.js 18+,本範例用 Python)
- 一個能對外的 HTTPS URL — 如果還沒 VPS,用 Cloudways或 Hostinger VPS都可以;本機開發階段用 ngrok 也行
步驟 1:安裝套件
pip install flask line-bot-sdk python-dotenv
步驟 2:寫 echo_bot.py
import os
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
app = Flask(__name__)
line_bot_api = LineBotApi(os.environ['CHANNEL_ACCESS_TOKEN'])
handler = WebhookHandler(os.environ['CHANNEL_SECRET'])
@app.route('/callback', methods=['POST'])
def callback():
signature = request.headers['X-Line-Signature']
body = request.get_data(as_text=True)
try:
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_text(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=f'你說了:{event.message.text}')
)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
步驟 3:設定環境變數 + 啟動
export CHANNEL_ACCESS_TOKEN="你從 LINE Developers 拿到的"
export CHANNEL_SECRET="你從 LINE Developers 拿到的"
python echo_bot.py
步驟 4:對外 HTTPS(本機開發)
LINE Webhook 強制 HTTPS。本機開發用 ngrok:
ngrok http 5000
把 ngrok 給的 https://xxxx.ngrok-free.app/callback貼到 LINE Developers 的 Webhook URL,按「Verify」確認 200 OK。
步驟 5:測試
掃 LINE Developers 提供的 QR code 加好友,發任何訊息,Bot 就會回「你說了:xxx」。
跑完這個 echo bot,就具備做 90% LINE Bot 功能的基礎。剩下的差別只在於「換掉 reply_message 的內容」— 換成資料庫查詢就是查單機器人,換成串 GPT 就是 AI 客服,換成寫入 Google Calendar 就是預約系統。
實際部署常見坑(我自己踩過的)
| 問題 | 原因 | 修法 |
|---|---|---|
| Webhook Verify 一直 500 | 環境變數沒讀到 | 用 dotenv 載 .env、重啟程式 |
| 本機 OK,部署後沒回應 | SSL 憑證沒設、port 被擋 | 用 Caddy / Cloudflare Tunnel 自動 HTTPS |
| 偶爾訊息不回 | 單一 Flask process 處理慢、reply_token 30 秒過期 | 加 worker 池、或用 push_message 補發 |
| Bot 重啟訊息全失 | 沒做訊息持久化 | 事件先寫 DB/queue 再處理 |
| VPS 重開機 Bot 沒上線 | 沒設 systemd / supervisor | 用 Bot 雲託管或自己寫 systemd unit |
不想自己 debug 這些坑?我們的 Bot 雲託管月費 NT$1,500/月起直接幫你跑:自動重啟、HTTPS、流量監控、月用量報告。把上面這一整章的維運責任外包出去。或者看 完整 LINE Bot 開發費用解析估一下總成本。
Messaging API 基礎概念
LINE Messaging API 是 LINE Bot 的核心。理解以下概念,你就掌握了 LINE Bot 的運作邏輯:
Webhook(訊息接收)
當用戶發送訊息給你的 Bot,LINE 會透過 Webhook 把訊息 POST 到你設定的 URL。你的伺服器接收後處理,再透過 API 回覆。
訊息類型
- Text Message:純文字訊息,最基本的互動方式
- Flex Message:客製化版面的訊息,可以做出卡片、按鈕、輪播等豐富的互動介面
- Template Message:LINE 預設的訊息模板,含按鈕、確認、輪播等
- Image / Video / Audio:多媒體訊息
- Sticker:貼圖訊息
Reply vs Push Message
| 類型 | Reply Message | Push Message |
|---|---|---|
| 觸發方式 | 用戶先發訊息,Bot 回覆 | Bot 主動發送 |
| 費用 | 免費(不限次數) | 依訊息量計費 |
| 使用場景 | 客服回覆、功能操作 | 通知、提醒、行銷推播 |
| 時間限制 | 收到訊息後 30 秒內 | 無限制 |
省錢重點:Reply Message 完全免費!所以設計 LINE Bot 時,盡量讓功能都透過用戶主動觸發(點按鈕、發關鍵字),就能省下大量的訊息費用。
LINE Bot 常見功能開發
1. 自動回覆(Auto Reply)
最基礎的功能。根據用戶發送的訊息內容,自動回覆對應的訊息。可以是簡單的關鍵字匹配,也可以串接 AI 做智慧回覆。
- 關鍵字回覆:偵測特定關鍵字(如「營業時間」、「價格」),回覆設定好的內容
- AI 智慧回覆:串接 GPT 或 Claude,理解自然語言並生成回答。詳見AI 客服完整指南
2. Rich Menu(圖文選單)
LINE 聊天室底部的圖文選單,是用戶最直覺的操作入口。可以設計多個按鈕區域,點擊後觸發不同功能(如:預約、查詢、聯絡客服)。
設計重點:
- 按鈕不要超過 6 個,保持簡潔
- 最重要的功能放在左上角(用戶視線焦點)
- 使用清晰的圖示和文字說明
- 配合品牌色調設計
3. LIFF(LINE Front-end Framework)
LIFF 可以在 LINE 聊天室內開啟網頁。常用於:
- 表單填寫:預約表單、諮詢表單、問卷調查
- 產品目錄:用網頁呈現更豐富的產品資訊
- 會員中心:查看預約記錄、累積點數、個人資料
LIFF 的優勢是可以直接取得用戶的 LINE User ID,不需要另外登入,體驗流暢。
4. 預約系統
在 LINE 聊天室內完成預約流程。包含時段管理、自動確認、預約提醒等。詳細介紹請看LINE 預約系統完整指南。
5. 通知推播
主動發送通知給用戶,如:預約提醒、訂單狀態更新、活動通知、生日祝福等。注意 Push Message 會計入訊息量,要控制發送頻率和對象。
6. 第三方服務串接
- Google Sheets:自動記錄預約、訂單、客戶資料
- Google Calendar:同步預約到行事曆
- Telegram:跨平台同步通知
- 金流(如綠界、藍新):LINE 內完成付款
- Email(如 Gmail API):自動發送確認信
DIY 自己做 vs 外包開發
| 比較項目 | DIY 自己做 | 外包給 AutoDev AI |
|---|---|---|
| 費用 | 伺服器費 NT$200-500/月 | 一次性 NT$8,000 起 |
| 時間成本 | 學習 + 開發約 2-8 週 | 1-2 週完成 |
| 需要技能 | Python/Node.js、API 串接 | 不需要 |
| 功能品質 | 依個人能力 | 專業開發品質 |
| 維護 | 自己負責 | 14-30 天免費維護 |
| 適合對象 | 有技術背景、需求簡單 | 沒時間學、需要進階功能 |
| 擴充性 | 依個人規劃 | 可隨時加購功能 |
什麼時候該自己做?
- 你本身有程式開發經驗
- 需求很簡單(只需要基礎的關鍵字回覆)
- 你想學習 LINE Bot 開發技術
- 預算非常有限
什麼時候該找外包?
- 你沒有程式開發背景
- 需要 AI 客服、預約系統等進階功能
- 希望快速上線(1-2 週內)
- 需要長期維護和技術支援
- 你的時間比開發費更有價值
務實建議:如果你是店老闆,每小時能創造的營收遠高於開發費分攤到每小時的成本,那外包絕對是更聰明的選擇。把時間花在你最擅長的事情上,技術的事交給專業的。不想一次性開發費?也可以考慮LINE Bot 雲託管,NT$1,500/月起直接用。查看 AutoDev AI 方案 →
LINE Bot 開發常見的地雷
- 忘記處理 Webhook 驗證:LINE 會定期驗證 Webhook URL,如果你的伺服器沒有正確回應 200 OK,Bot 會停止接收訊息。
- Reply Token 過期:Reply Token 只有 30 秒有效期,如果你的處理邏輯太慢(例如等 AI 回覆),會導致回覆失敗。解法是先回覆「處理中」,再用 Push Message 送結果。
- 沒有錯誤處理:伺服器出錯時沒有適當的 fallback,用戶發訊息卻完全沒有回應,體驗很差。一定要設定預設回覆。
- 忽略 LINE 的訊息量限制:免費版每月只有 200 則 Push Message。如果你的用戶多,很快就會用完。規劃時要考慮訊息費用。
- 沒有做使用者體驗測試:開發完直接上線,結果用戶根本不知道怎麼操作。上線前至少找 3-5 個人測試。
常見問題
免費諮詢:看完教學覺得太複雜?沒關係,聯繫我們,30 分鐘免費幫你評估需求和報價。不收費、沒壓力。