iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0

直接從 LINE 輸入「我最近睡得好嗎?」,LINE 要怎麼把使用者的訊息傳送到我的 Java Backend?接下來要來了解 LINE Messaging API,了解 LINE、Webhook 和目前的 Java Backend 是怎麼連接在一起的。

Messaging API 是什麼?

Messaging API 是 LINE 所提供的 API,可以讓 Backend 與 LINE 官方帳號之間交換訊息。當使用者傳送訊息時,LINE Platform 可以透過 Webhook 將 Event 傳送到 Backend;而 Backend 處理完成後,也可以透過 Messaging API 將結果回覆給使用者。

其中還會使用到兩個重要的資訊:
-Channel Access Token
是 Backend 呼叫 LINE Messaging API 時使用的通行證。舉例來說當 Backend 將分析結果回覆給使用者,就需要在 Request 中帶上 Access Token,讓 LINE Platform 可以確認這個 Backend 是否有權發送訊息。所以 Access Token 也需要像前面提到的 API 密碼透過環境變數取得,不然上傳到 GitHub 時可能被外洩。

-Channel Secret
當 LINE 平台發送 Webhook Request 時,Request Header 中會包含 x-line-signature。可以透過 Channel Secret 來驗證 Request Body 的簽章,確認收到的 Webhook Request 的確來自 LINE 且內容沒有在傳輸過程中被惡意竄改。

Webhook URL

我目前的 Webhook Endpoint 在本地端:http://localhost:8081/webhook ,然而 LINE 平台是外部服務,它無法透過 localhost 找到我電腦裡的 Server。所以 LINE 需要一個從可以連線的 HTTPS Webhook URL。這裡可以使用像 ngrok 這類 Tunnel 工具,先建立一個公開的 HTTPS URL,將外部傳來的 Request 轉送到本機的 localhost:8081。這樣 LINE Platform 就可以將 Request 先傳到 ngrok 的公開 HTTPS URL,再由 ngrok 轉送至本機的 Java Server。

LINE Webhook Event

當使用者傳送 LINE 訊息後,LINE 並不是只把文字本身傳給 Backend,而是將這次發生的 Event 包裝成 JSON Payload,再 POST 到設定好的 Webhook URL。

實作

使用 ngrok 建立 Tunnel:
https://ithelp.ithome.com.tw/upload/images/20261008/20184235k5hm2GTAgf.png
LINE Official Account建立:
https://ithelp.ithome.com.tw/upload/images/20261008/20184235klEPBwPEQE.png
完成設定後,直接從 LINE Official Account 傳送一則訊息。這時 LINE Platform 會產生 Webhook Event,並透過剛才設定的 URL 發送到 Java Backend。
JAVA 接收成功:
https://ithelp.ithome.com.tw/upload/images/20261008/20184235RSX6W9nYYc.png
回到 Java Console 後,可以看到 WebhookHandler 成功收到 LINE Platform 傳來的 Request Body。


上一篇
Webhook:外部服務怎麼主動通知 Backend?
下一篇
如何讓串接後的 LINE 自動回訊息呢?
系列文
30 天從資料處理、分析到生成式 AI 的整合應用與實作學習 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言