Logo Site EngageLab Mark Colored Transparent文件
搜尋

自訂訊息下發

如果您在 OTP 平台建立了自訂範本內容,則呼叫此 API 發送自訂訊息內容。

呼叫地址

POST https://otp.api.engagelab.cc/v1/custom-messages

呼叫驗證

請參考 呼叫驗證 了解如何進行 API 鑑權。

請求格式

請求頭

POST /v1/custom-messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/custom-messages  HTTP/1.1  
Content-Type: application/json  
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
此代碼塊在浮窗中顯示

請求體

{ "to": "+6591234567", "template":{ "id":"test-template-1", "params": { "code": "codevalue", "var1":"value1" } } }
              
              {
    "to": "+6591234567", 
    "template":{
      "id":"test-template-1",
      "params": {
        "code": "codevalue",
        "var1":"value1"
        }
    }
}

            
此代碼塊在浮窗中顯示

請求參數

一個請求物件以 JSON 格式表達,因此請求頭需要帶 Content-Type: application/json 。

參數 類型 選項 說明
to String 必填 發送目標,手機號碼或電子信箱地址,+6598765432,support@engagelab.com
template JSON Object 必填 範本資訊,所含二級參數見下方
|_ id String 必填 範本 ID
|_ params JSON Object 可選 範本參數
_ |_ code String 可選 範本類型為驗證碼時,該欄位必填。
_ |_ var String 可選 自訂範本變數 Key 的取值
如果您在建立範本時自訂了變數,則在此為它們傳值,若不傳,則將直接以變數 Key 下發,如{{var1}}

對於params的說明

  1. 對於{{brand_name}},{{ttl}},{{pwa_url}} 等範本預設變數,不需要傳遞,系統會自動替換為範本建立時指定的內容;
  2. 如果範本類型為驗證碼,則必須要傳遞{{code}}變數,否則會報錯。;
  3. 同時對於建立範本時範本內容有自訂的變數欄位,也都透過 params 進行賦值,如範本內容Hi {{name}}, your verify code is {{code}},此時需要賦值參數params:{"name":"Bob"}
  4. Email 管道特殊變數:對於 Email 管道,支援透過 params 動態覆蓋郵件主旨(subject)、發件人名稱(from_name)、發件人信箱(from_mail)等。詳細的進階用法請參考 建立範本 - Email 範本變數進階用法

請求範例

1. 發送自訂驗證碼:

{ "to": "+6591234567", "template":{ "id":"code-template", "params": { "code": "123456" } } }
              
              {
    "to": "+6591234567", 
    "template":{
      "id":"code-template",
      "params": {
        "code": "123456"        
        }
    }
}

            
此代碼塊在浮窗中顯示

2. 發送自訂通知內容:

{ "to": "+6591234567", "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
    "to": "+6591234567",
    "template": {
        "id": "notification-template",
        "params": {
            "order": "123456"
        }
    }
}

            
此代碼塊在浮窗中顯示

3. 發送自訂行銷內容:

{ "to": ["+6591234567"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
    "to": ["+6591234567"],
    "template": {
        "id": "marketing-template",
        "params": {
            "name": "EngageLab",
            "promotion": "30%"
        }
    }
}

            
此代碼塊在浮窗中顯示

返回參數

成功返回

欄位 類型 選項 描述
message_id String 必填 訊息 ID,唯一標識某一條訊息
send_channel String 必填 表示當前下發的管道,取值有 whatsapp/sms/email/voice
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

            
此代碼塊在浮窗中顯示

注意,返回的**send_channel**值不代表最終下發到用戶的管道,僅代表現階段使用的管道;如範本配置的策略中配置了 WhatsApp 管道送達失敗然後自動補發 SMS 管道,則 API 返回將返回 whatsapp 值,一定時間後感知到送達失敗,系統將採用 SMS 管道發送

失敗返回

http 狀態碼為 4xx 或者 5xx,回應體包含欄位如下:

欄位 類型 選項 描述
code int 必填 錯誤碼,詳見錯誤碼說明
message String 必填 錯誤詳情
{ "code": 5001, "message": "sms send fail" }
              
              {
    "code": 5001,
    "message": "sms send fail"
}

            
此代碼塊在浮窗中顯示

錯誤碼

錯誤碼 http code 說明
1000 500 內部錯誤
2001 401 鑑權失敗,未攜帶正確的 token
2002 401 鑑權失敗,token 已過期或已被禁用
2004 403 無呼叫此 API 的權限
3001 400 請求參數格式無效,請檢查是否符合參數格式的 JSON 內容
3002 400 請求參數有誤,請檢查請求參數是否符合要求
3003 400 請求參數有誤,相關業務校驗失敗,詳情參考 message 欄位的錯誤描述
3004 400 超出頻率限制,針對同一範本以及同一目標用戶,在驗證碼的有效期內無法再次下發
4001 400 相關資源不存在,如範本訊息下發時使用了不存在的範本
5001 400 發送失敗(通用/其他)
5011 400 手機號碼格式無效
5012 400 目標不可達
5013 400 號碼被加入黑名單
5014 400 內容不符合規範
5015 400 訊息被攔截/拒絕
5016 400 發送內部錯誤
5017 400 無中國地區發送權限
5018 400 手機故障(關機/停機)
5019 400 用戶已退訂
5020 400 號碼未註冊/空號
Icon Solid Transparent White Qiyu
聯繫銷售