EN ZH

💬 LINE Messaging API

用於開發、調試或與 LINE Messaging API 互動(包括 Webhook 事件、簽章驗證、發送回覆/推送/群組/廣播訊息以及管理圖文選單)。

概述 (Overview)

此技能提供與 LINE Messaging API 整合和互動的結構化參考。涵蓋常見規範、Webhook 處理、簽章驗證、訊息格式和圖文選單管理。

何時使用 (When to Use)

核心模式 (Core Pattern)

在處理事件之前,務必對傳入的 Webhook 進行簽章驗證,並立即向 LINE 平台回傳 200 OK 回應。

Webhook 簽章驗證 (Python 範例)

import hmac
import hashlib
import base64

# 驗證標頭 'x-line-signature'
channel_secret = "YOUR_CHANNEL_SECRET"
body = request_raw_body_string

hash = hmac.new(
    channel_secret.encode('utf-8'),
    body.encode('utf-8'),
    hashlib.sha256
).digest()

signature = base64.b64encode(hash).decode('utf-8')
# 將簽章與請求標頭進行比較(標頭鍵值不區分大小寫)
is_valid = hmac.compare_digest(signature, request_headers.get('x-line-signature'))

快速參考 (Quick Reference)

網域名稱 (Domain Names)

網域名稱 用途
api.line.me 標準 API 端點(訊息、個人檔案、圖文選單等)
api-data.line.me 媒體資料端點(訊息下載/上傳、圖文選單圖片、受眾檔案)

核心 API 端點 (Essential Endpoints)

API 端點 方法 路徑 描述
發送回覆 (Reply) POST /v2/bot/message/reply 使用一次性的 replyToken 進行回覆
發送推送 (Push) POST /v2/bot/message/push 直接向特定使用者、群組或聊天室發送訊息
發送多播 (Multicast) POST /v2/bot/message/multicast 向多個使用者發送推送訊息(最多 500 人)
發送廣播 (Broadcast) POST /v2/bot/message/broadcast 向所有好友發送訊息
取得訊息內容 GET /v2/bot/message/{messageId}/content 取得媒體內容(圖片、影片等)需經由 api-data.line.me
顯示載入動畫 POST /v2/bot/chat/loading/start 在聊天室中顯示載入中指示器
建立圖文選單 POST /v2/bot/richmenu 建立新的圖文選單物件
上傳圖文選單圖片 POST /v2/bot/richmenu/{richMenuId}/content 上傳 JPEG 或 PNG 圖片 需經由 api-data.line.me
連結圖文選單 POST /v2/bot/user/{userId}/richmenu/{richMenuId} 將圖文選單連結至特定使用者

實作步驟 (Implementation Steps)

  1. 取得憑證:在 LINE Developers 控制台建立通道,並複製 Channel SecretChannel Access Token
  2. 設定路由:建立一個與您註冊的 Webhook URL 相符的 HTTPS 路由。
  3. 驗證並回應:驗證 x-line-signature 中的簽章。立即回傳 HTTP 200 OK 狀態,即使 Webhook 包含空的事件陣列。
  4. 處理事件:遍歷 events[]。處理常見的事件類型,如 messagefollowpostback
  5. 建構承載資料 (Payloads):進行回覆或推送時,請正確格式化訊息物件(例如:{ "type": "text", "text": "Hello" })。

常見錯誤 (Common Mistakes)

← 返回技能庫