訊息訊息功能批次發送訊息

批次發送訊息

概述

透過平台管理 API 一次發送訊息到多個聊天室或多位用戶。支援樣板變數替換,適用於廣播通知、行銷推送、系統公告等場景。


API 端點

批次發送訊息

將訊息發送到多個聊天室或用戶的一對一聊天室。

POST /messages/batch

Headers

參數類型必填說明
IM-API-KEYstring您的平台 API 金鑰
Content-Typestringapplication/json; charset=utf-8

Post Body

參數類型必填說明
messagestring訊息內容,支援 $pattern$ 樣板替換
messageTypestring訊息類型(如 "text"
senderstring指定發送者 ID(僅管理員可用)
pushboolean是否啟用推播通知,預設為 false
skipTotalBadgeboolean跳過計算發送者的總未讀數,預設為 false
parasarray[object]接收者參數陣列

接收者參數物件

參數類型必填說明
receiverstring接收者用戶 ID(發送至一對一聊天室)
roomstring聊天室 ID(若指定,receiver 會被忽略)
$pattern$string樣板變數的替換值

範例請求

基本批次發送

const response = await axios.post(
  "https://your-app.imkit.io/messages/batch",
  {
    messageType: "text",
    message: "系統公告:明天將進行例行維護",
    push: true,
    sender: "system",
    paras: [
      { receiver: "user-a" },
      { receiver: "user-b" },
      { receiver: "user-c" },
    ],
  },
  {
    headers: {
      "IM-API-KEY": process.env.IM_API_KEY,
      "Content-Type": "application/json; charset=utf-8",
    },
  }
);

使用樣板變數

訊息中以 $pattern$ 包裹的變數會被替換為每個接收者對應的值:

const response = await axios.post(
  "https://your-app.imkit.io/messages/batch",
  {
    messageType: "text",
    message: "Hi $name$,您的訂單 $orderId$ 已出貨!",
    push: true,
    sender: "system",
    paras: [
      {
        receiver: "user-a",
        "$name$": "Alice",
        "$orderId$": "ORD-001",
      },
      {
        receiver: "user-b",
        "$name$": "Bob",
        "$orderId$": "ORD-002",
      },
    ],
  },
  {
    headers: {
      "IM-API-KEY": process.env.IM_API_KEY,
      "Content-Type": "application/json; charset=utf-8",
    },
  }
);

發送至指定聊天室

const response = await axios.post(
  "https://your-app.imkit.io/messages/batch",
  {
    messageType: "text",
    message: "活動提醒:明天 14:00 開始",
    sender: "system",
    paras: [
      { room: "room-001" },
      { room: "room-002" },
      { room: "room-003" },
    ],
  },
  {
    headers: {
      "IM-API-KEY": process.env.IM_API_KEY,
      "Content-Type": "application/json; charset=utf-8",
    },
  }
);

Response

成功回應(200 OK)

參數類型說明
RCnumber回應代碼(0 表示成功)
RMstring回應訊息
result.batchIDstring批次任務 ID
result.countnumber接收者數量

範例回應

{
  "RC": 0,
  "RM": "OK",
  "result": {
    "batchID": "batch-20260410-abc123",
    "count": 3
  }
}

錯誤回應

當請求失敗時,您會收到包含錯誤詳細資訊的錯誤回應。常見的錯誤情況包括:

  • 無效的 API 金鑰 — 提供的 IM-API-KEY 無效或已過期
  • 缺少必填參數 — 未提供 messagemessageTypeparas
  • 接收者不存在paras 中的 receiver 不存在
  • 伺服器內部錯誤 — 伺服器端發生未預期的錯誤

使用場景

廣播通知

  • 系統公告:向所有用戶推送維護通知或重要公告
  • 活動推播:向特定用戶群發送活動或優惠訊息

個人化訊息

  • 樣板訊息:透過 $pattern$ 變數,發送包含個人資訊的通知(如訂單編號、用戶名稱)
  • 帳務通知:發送帳單到期、付款成功等個人化通知

注意事項

  • 非同步處理:批次訊息會加入處理佇列,回應僅表示任務已建立
  • 樣板替換:變數名稱需以 $ 包裹,如 $name$,替換適用於 messageextra 欄位
  • 接收者優先順序:若 paras 中同時指定 receiverroomroom 優先
  • 推播預設關閉push 預設為 false,需明確設為 true 才會推播
© 2026 FUNTEK Software Inc. All rights reserved.