LINE聊天機器人開發教學:從零打造你的第一個機器人
從零開始打造LINE聊天機器人的完整指南。學習Messaging API架構、webhook設定、訊息處理、AI整合與部署,包含Node.js和Python範例。

#聊天機器人架構總覽
LINE聊天機器人是一個透過LINE Messaging API自動回應使用者訊息的程式。在開始寫程式之前,理解架構至關重要。
#LINE聊天機器人運作原理
使用者 → LINE App → LINE平台 → Webhook → 你的伺服器 → 回應 → 使用者
- 使用者透過LINE應用程式傳送訊息
- LINE平台接收並處理訊息
- Webhook事件傳送到你的伺服器(POST請求)
- 你的伺服器處理事件並產生回應
- Reply/Push API透過LINE傳送回應
#聊天機器人類型
| 類型 | 說明 | 最適合 |
|---|---|---|
| 規則式 | 根據關鍵字/模式回應 | FAQ、簡單查詢 |
| 選單導向 | 使用圖文選單與按鈕互動 | 訂購、預約 |
| AI驅動 | 使用NLP/AI進行自然對話 | 客戶服務 |
| 混合型 | 結合所有方法 | 全功能機器人 |
了解更多關於LINE聊天機器人服務的可能性。
#前置需求與設定
#你需要準備的
- LINE開發者帳號(免費)
- Messaging API Channel已設定完成
- 具有公開HTTPS URL的伺服器(Vercel、Railway、AWS等)
- Node.js 18+或Python 3.9+
#步驟1:建立Messaging API Channel
- 前往LINE開發者控制台
- 建立或選擇Provider
- 建立新的Messaging API Channel
- 記下:
- Channel ID
- Channel Secret
- Channel Access Token(發行長效權杖)
#Webhook實作
Webhook是聊天機器人的核心。它接收來自LINE的事件並加以處理。
#Node.js實作
// index.js
const express = require('express');
const { Client, middleware } = require('@line/bot-sdk');
require('dotenv').config();
const config = {
channelSecret: process.env.LINE_CHANNEL_SECRET,
channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN,
};
const client = new Client(config);
const app = express();
// Webhook端點
app.post('/webhook', middleware(config), async (req, res) => {
try {
const events = req.body.events;
await Promise.all(events.map(handleEvent));
res.status(200).json({ status: 'ok' });
} catch (err) {
console.error(err);
res.status(500).end();
}
});
async function handleEvent(event) {
if (event.type !== 'message' || event.message.type !== 'text') {
return null;
}
const userMessage = event.message.text;
const replyToken = event.replyToken;
// 簡單的回聲機器人
return client.replyMessage(replyToken, {
type: 'text',
text: `您說:${userMessage}`,
});
}
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Bot is running on port ${PORT}`);
});
#訊息類型與回應
LINE支援多種訊息類型。以下是每種類型的使用方式:
#文字訊息
簡單的文字回應:
{
type: 'text',
text: '您好!今天有什麼可以幫您的?'
}
#Flex訊息
豐富、可自訂的版面配置(類似HTML卡片):
{
type: 'flex',
altText: 'Product Card',
contents: {
type: 'bubble',
hero: {
type: 'image',
url: 'https://example.com/product.jpg',
size: 'full',
aspectRatio: '20:13'
},
body: {
type: 'box',
layout: 'vertical',
contents: [
{
type: 'text',
text: '產品名稱',
weight: 'bold',
size: 'xl'
},
{
type: 'text',
text: 'NT$1,299',
color: '#06C755'
}
]
}
}
}
#對話流程設計
#狀態管理
對於多步驟對話,你需要追蹤使用者狀態。最佳實務:
- 始終提供退出選項(「取消」、「重新開始」)
- 在處理前確認重要操作
- 妥善處理預期外的輸入
- 為中斷的對話設定逾時
- 使用圖文選單作為主要導覽(參見圖文選單教學)
#AI整合
使用AI強化你的聊天機器人,實現自然語言理解:
#使用OpenAI/GPT
const OpenAI = require('openai');
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
async function getAIResponse(userMessage, context = []) {
const completion = await openai.chat.completions.create({
model: 'gpt-4',
messages: [
{
role: 'system',
content: `你是一個友善的餐廳客服機器人。
保持回應簡潔(LINE限制200字元以內)。
菜單:披薩(NT$299)、漢堡(NT$199)、義大利麵(NT$249)。
營業時間:每天10:00-22:00。`
},
...context,
{ role: 'user', content: userMessage }
],
max_tokens: 150
});
return completion.choices[0].message.content;
}
在LINE自動化服務了解更多AI驅動的解決方案。
#部署與監控
#部署選項
Vercel(推薦用於Next.js):
npm install -g vercel
vercel --prod
#設定Webhook URL
部署後:
- 複製伺服器URL(例如
https://your-bot.vercel.app) - 前往LINE開發者控制台
- 導覽至Messaging API → Webhook設定
- 設定Webhook URL:
https://your-bot.vercel.app/webhook - 點擊「驗證」測試連線
- 啟用「使用webhook」
#結論
現在你已具備打造強大LINE聊天機器人的基礎。記住:
- 從簡單開始:回聲機器人 → 關鍵字回應 → AI整合
- 徹底測試:使用LINE的測試工具與真實裝置
- 監控正式環境:記錄所有內容,設定警示
- 根據資料迭代:追蹤使用者詢問的內容,優化流程
需要協助打造LINE聊天機器人?
試用LineBot.pro享受無程式碼聊天機器人建置、AI驅動的回應與企業級基礎架構。幾分鐘內就能上線你的聊天機器人,而不用等好幾個月。
相關資源:
關於 LineBot.pro
LineBot.pro 是專為 LINE 官方帳號打造的自動化平台,協助您建立圖文選單、聊天機器人與群發訊息。這些指南由我們的團隊根據 LINE Messaging API 的實務經驗撰寫。
聯絡我們相關文章

@line/bot-sdk Express 中介軟體:replyMessage 與 validateSignature 完整示例
@line/bot-sdk Express 中介軟體實戰:webhook 簽名驗證、replyMessage 與 sentMessages、錯誤處理、TypeScript 型別。
閱讀更多
LINE Messaging API 2026 更新:新功能、定價與變更
LINE Messaging API 2026 更新完整參考:新功能、定價變更、Rich Menu限制、Mini App更新、臺灣/泰國/日本各地定價。
閱讀更多
LINE Rich Menu 尺寸 2500x1686:官方規格、模板與影象指南(2026)
LINE Rich Menu影象尺寸的權威參考:2500x1686(完整)和2500x843(緊湊)、檔案格式、最大大小、1000上限以及現成模板。2026年版。
閱讀更多