API 參考
訊息POST

發送文字訊息

經指定渠道帳號發送標準化文字訊息。message.text 一定要非空;provider_data 承載渠道專屬欄位,引用回覆用頂層 reply_to。 WhatsApp 發送成功同渠道提供可引用訊息識別碼時可能回傳嘅不透明回覆句柄。要原樣回傳,佢唔係父訊息 id。

https://api.unifyport.ai/v1/messages

請求標頭

X-Api-Key
string必填

工作區 API Key,工作區會由呢個標頭解析得出嚟。

Content-Type
string必填

發送 JSON 請求內容嘅時候請用 application/json。

路徑參數

呢個介面冇路徑參數。

請求內容

account_id
string必填

發送呢條訊息嘅渠道帳號。

minLength: 1

to
object必填

收件方目標,包括 id 同 type。

id
string必填

收件方喺渠道側嘅識別碼。

minLength: 1

type
string必填

收件方類型:user、group 或 channel。

enum: user, group, channel

message
object必填

標準化嘅訊息內容:文字用 message.text,媒體用 message.url。

type
string必填

訊息類型:text、image、video、audio、document、file 或 contact。

enum: text, image, video, audio, document, file, contact

text
string

message.type=text 時必填嘅非空文字。

minLength: 1

caption
string

image、video、document 或 file 訊息嘅可選說明文字。

url
string

非空絕對 HTTP(S) 媒體 URL;媒體訊息至少提供一個來源欄位。

format: uri · pattern: ^[Hh][Tt][Tt][Pp][Ss]?://

file_url
string

非空備用絕對 HTTP(S) 媒體 URL;媒體訊息至少提供一個來源欄位。

format: uri · pattern: ^[Hh][Tt][Tt][Pp][Ss]?://

file_key
string

非空渠道或者儲存檔案引用;媒體訊息至少提供一個來源欄位。

minLength: 1

contacts[]
object[]

message.type=contact 時必填嘅非空名片 array。

minItems: 1

name
string

每張名片必填嘅非空聯絡人顯示名。

minLength: 1

phones[]
object[]

名片包含嘅電話號碼清單。

number
string

電話號碼;每個 phone 項目都必須提供。

type
string

可選嘅電話類型,例如 CELL 或 WORK。

emails[]
object[]

名片包含嘅電郵地址清單。

address
string

電郵地址;每個 email 項目都必須提供。

format: email

type
string

可選嘅電郵類型,例如 WORK 或 HOME。

organization
string

聯絡人嘅可選組織名稱。

title
string

聯絡人嘅可選職位名稱。

provider_data
object

渠道專屬嘅選項,例如 Telegram 嘅 parse_mode;WhatsApp audio / video 嘅 seconds 使用非負整數,只喺 video 時,取值範圍係 0 至 4294967295;waveform 只適用於 audio。引用回覆請用頂層 reply_to。

seconds
integer

WhatsApp audio 或 video 訊息嘅可選時長,單位係秒,使用非負整數;只喺 video 時,取值範圍係 0 至 4294967295。

minimum: 0

waveform
string

WhatsApp audio 訊息嘅可選音訊波形資料。非空值必須使用標準 Base64 編碼,解碼後亦必須係可解析嘅 JSON 波形資料;空字串按未提供處理,其他格式錯誤會返回 HTTP 400 provider_invalid_request。

reply_to
object

引用回覆目標;將入站 Webhook 嘅 data.message.reply_token 原樣放入發送請求嘅 reply_to.reply_token。

reply_token
string

由入站 Webhook 嘅 data.message.reply_token 原樣複製嘅不透明引用代符。

minLength: 1

mentions[]
object[]

群組訊息嘅 @ 目標列表。type=member 使用對應 Provider 嘅成員 id;type=all 表示 @所有人,只喺 Provider 支援時生效,否則返回 unsupported_message_type。

type
string

@ 目標類型。省略時按 member 處理以兼容舊請求;type=member 必須傳 id,type=all 唔傳 id 且只適用於群組聊天。

enum: member, all

id
string

type=member 時必填嘅 Provider 成員識別碼。

minLength: 1

回應內容

message_id
string

已受理訊息嘅 UnifyPort 訊息識別碼(msg_...)。

account_id
string

呢個回應所指嘅渠道帳號。

status
string

受理狀態;accepted 即係訊息已經排隊等住派去渠道。

provider_ref
string

渠道側嘅訊息參考,等渠道編咗號之後先會有。

reply_token
string

WhatsApp 發送成功同渠道提供可引用訊息識別碼時可能回傳嘅不透明回覆句柄。要原樣回傳,佢唔係父訊息 id。

回應

200
200 OK

請求成功,回應內容嘅例子如上。

400
請求錯誤

請求內容、路徑或者參數無效。

401
未授權

X-Api-Key 請求標頭缺少或者無效。

409
衝突

目前操作同現有嘅渠道帳號或者資源衝突。

500
伺服器錯誤

服務遇到咗未預期嘅錯誤。

501
渠道未實作

所選渠道未實作呢個操作。

502
上游閘道錯誤

渠道轉接器或者上游渠道未能完成呢個操作。

請求

curl -X POST https://api.unifyport.ai/v1/messages \
  -H "X-Api-Key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
  "account_id": "acc_example",
  "to": {
    "id": "user_example",
    "type": "user"
  },
  "message": {
    "type": "text",
    "text": "Hello from UnifyPort"
  },
  "provider_data": {
    "parse_mode": "markdown"
  }
}'

回應

{
  "data": {
    "message_id": "msg_example",
    "account_id": "acc_example",
    "status": "accepted",
    "provider_ref": "provider_msg_example",
    "reply_token": "<opaque WhatsApp reply handle>"
  }
}