如果你想讓網站、系統或自動化流程,能在 LINE 上主動發送訊息、接收使用者回覆,LINE Messaging API 幾乎是最常見的做法。這篇文章會用實作角度帶你理解串接流程,並順便釐清很多人第一次接觸時最容易混淆的名詞:Access Token 到底是什麼?它和 Channel Secret 又有什麼不同?
什麼是 LINE Messaging API
LINE Messaging API 是 LINE 官方提供的開發介面,讓你可以透過伺服器和 LINE 平台互動。簡單講,它就是把你的後端服務,接到 LINE Official Account 上,讓系統能做這幾件事:
- 接收使用者傳來的訊息
- 依照條件自動回覆
- 推播通知給使用者或群組
- 把 LINE 當成客服、通知、會員互動入口
LINE 官方的運作流程大致是:使用者傳訊息到官方帳號,LINE 平台把事件送到你的 Webhook URL,你的伺服器收到後再決定要不要回覆,最後透過 Messaging API 把訊息送回 LINE。
串接前要準備什麼
- 一個 LINE Official Account
- 一個 Messaging API channel
- 可對外存取的 Webhook URL
- Channel access token
- Channel secret
其中最常被拿來混在一起的是 Channel access token 和 Channel secret。它們用途不同,不能互相取代。
什麼是 Access Token
Access Token 可以把它想成「授權憑證」。你的伺服器要呼叫 LINE Platform 的 API 時,必須先證明自己有權限,Access Token 就是這個證明。
在 LINE Messaging API 的情境中,通常指的是 Channel access token。你可以把它理解成:
- 它代表你的後端服務已獲得該 channel 的 API 使用權限
- 你在呼叫 Messaging API 時,必須把它放進 HTTP Header
- 它不應該暴露在前端,也不應該寫進 GitHub 或公開程式碼
最常見的寫法會像這樣:
Authorization: Bearer {channel access token}
如果沒有這個 token,LINE 平台就不知道你是不是被授權的服務,也就不會讓你發送訊息或操作相關 API。
Channel access token 跟 Channel secret 差在哪裡
| 項目 | 用途 | 常見場景 |
|---|---|---|
| Channel access token | 用來呼叫 Messaging API | 推播、回覆、廣播訊息 |
| Channel secret | 用來驗證 Webhook 簽章 | 確認 webhook 事件真的是 LINE 傳來的 |
很多初學者會以為「只要有 token 就能驗證 webhook」,這是不對的。Access Token 是拿來呼叫 API,Channel Secret 則是拿來驗證 webhook 來源。兩者要一起理解,串接才會安全。
實際串接流程
- 到 LINE Developers 建立 Messaging API channel
- 在 Messaging API 設定中產生 Channel access token
- 設定你的 Webhook URL
- 開啟 Use webhook
- 讓 LINE 平台把事件送到你的伺服器
- 你的伺服器用 Access Token 呼叫 Messaging API 回應使用者
如果是正式上線環境,建議你的 webhook 伺服器要做這幾件事:
- 驗證 webhook 簽章
- 把 access token 存在環境變數或密鑰管理服務
- 避免把 token 硬寫在前端 JavaScript
- 定期檢查 token 是否需要更新或輪替
簡單的 API 呼叫範例
以下是概念示意,實務上你可以在 PHP、Node.js、Python、Go 任何後端環境中發送同樣的請求:
curl -X POST https://api.line.me/v2/bot/message/reply \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {channel access token}' \ -d '{ "replyToken": "reply-token-from-webhook", "messages": [ { "type": "text", "text": "你好,這是自動回覆訊息" } ] }'
這裡可以看到,Authorization Header 就是把 access token 帶進去。LINE 平台會根據 token 判斷你是否有權限執行這次 API 請求。
常見錯誤
- 把 access token 放在前端程式碼,導致被人直接看到
- 把 channel secret 和 access token 混用
- Webhook URL 設好了,但沒有開啟 Use webhook
- 伺服器沒有正確回傳 200,導致 LINE 認為 webhook 失敗
- token 過期或被重發後,程式仍然使用舊值
什麼時候需要更新 token
如果你使用的是有期限的 token,就要留意有效時間;如果你用的是較長效或可輪替的 token,也建議在以下情況重新確認:
- 正式上線前切換環境
- 團隊成員更動或權限重整
- 懷疑 token 已外洩
- API 呼叫開始出現 401 或授權失敗
結語
LINE Messaging API 的核心其實不難:Webhook 用來接收事件,Access Token 用來呼叫 API。只要先把這個觀念釐清,再去理解 reply、push、broadcast、webhook event 這些功能,後面的串接流程就會順很多。
如果你剛開始研究 LINE 串接,建議先把「官方帳號、Webhook、Channel access token、Channel secret」這四個名詞分開記,之後實作時會少掉很多混亂。
