當前 MongoDB: MongoDB @ Zeabur
資料庫:n8nWorkflow
Collection:LineMessageLock

API 端點概覽

所有 API 請求都需要提供有效的 API Key

POST /api/linelock/try-acquire-lock - 嘗試取得鎖定 (n8n 第一步,需帶 userid)
POST /api/linelock/add-to-queue - 將訊息加入佇列 (無法取得鎖定時,需帶 message 和 replyToken)
POST /api/linelock/process-next-in-queue - 處理佇列中的所有訊息 (組合並使用最新 replyToken)
POST /api/linelock/release-lock - 釋放鎖定 (n8n 最後一步)

API Key 設定

此 API Key 將用於所有 API 請求

Test 1:嘗試取得鎖定

用於 n8n 工作流程的第一步,檢查是否可以處理該 LINE 訊息。
API 端點: POST 載入中...
Request Body:
{ "sessionLineID": "U1234567890abcdef", "messageId": "msg-001", "userId": "U1234567890", "lockDurationSeconds": 60 }
Response:
尚未執行

Test 2:加入佇列

當無法取得鎖定時,使用此端點將訊息加入等待佇列。
API 端點: POST 載入中...
Request Body:
{ "sessionLineID": "U1234567890abcdef", "messageId": "msg-002", "message": "使用者傳送的訊息內容", "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA" }
Response:
尚未執行

Test 3:釋放鎖定

用於 n8n 工作流程的最後一步,釋放該 LINE 對話的鎖定。
API 端點: POST 載入中...
Request Body:
{ "sessionLineID": "U1234567890abcdef", "messageId": "msg-001" }
Response:
尚未執行

Test 4:處理下一個佇列訊息

處理佇列中的所有訊息,組合訊息內容並使用最新的 replyToken。
API 端點: POST 載入中...
Request Body:
{ "sessionLineID": "U1234567890abcdef", "currentMessageId": "msg-001" }
Response:
尚未執行

額外功能:取得 Session 狀態

查詢指定 Session 的完整狀態資訊,包括鎖定狀態、佇列內容等。
API 端點: GET 載入中...
Response:
尚未執行