Logo Site EngageLab Mark Colored Transparent文件
搜尋

OTP 驗證碼發送

OTP 驗證碼發送介面由 EngageLab 平台產生驗證碼,並依照範本中指定的通道策略進行發送。

如果您希望自行產生驗證碼,而不透過 EngageLab 平台產生,可以呼叫 EngageLab OTP 自訂驗證碼發送 介面。

呼叫位址

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

呼叫驗證

採用 HTTP 基本驗證 的驗證方式,在 HTTP Header(標頭)中加入 Authorization:

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
此代碼塊在浮窗中顯示

上述 base64_auth_string 的產生演算法為:base64(dev_key:dev_secret)

請求範例

請求頭

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

            
此代碼塊在浮窗中顯示

請求體

{ "to": "+8618701235678", "template":{ "id":"test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
    "to": "+8618701235678",
    "template":{
      "id":"test-template-1",
      "language": "default",
        "params": {
        "key1": "value1",
        "key2": "value2"
        }
    }
}

            
此代碼塊在浮窗中顯示

請求參數

請求物件以 JSON 格式表示,因此請求頭需攜帶 Content-Type: application/json

參數 類型 選項 說明
to String 必填 發送目標,手機號碼或電子郵件地址,例如 +8613800138000、support@engagelab.com
template JSON Object 必填 範本資訊,所含二級參數請見下方
|_ id String 必填 範本 ID
|_ language String 可選 範本語言,支援以下幾種語言:
default 預設語言
zh_CN 簡體中文
zh_HK 繁體中文
en 英文
ja 日文
th 泰文
es 西班牙文
若未傳入則預設為 default(預設語言)
|_ params JSON Object 可選 自訂範本變數 Key 的取值。
如果您在建立範本時自訂了變數,則可在此傳入其值;若未傳入,則會直接下發變數 Key,如 {{var}}

關於params的說明

  1. 若範本有預設欄位(例如 from_id),當未傳入 param_vars 欄位值時,訊息發送時將使用範本預設的 from_id;
  2. 若傳入了 param_vars 欄位值,例如 param_vars:{"from_id":"12345"},則訊息發送時,範本的 from_id 會被替換為 12345;
  3. 同樣地,對於建立範本時在範本內容中自訂的變數欄位,也都透過 param_vars 指派值,例如範本內容為 Hi {{name}}, your verify code is {{code}},此時需要傳入參數 param_vars:{"name":"Bob"}

回傳參數

成功回傳

欄位 類型 選項 描述
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 通道,則介面回傳將會是 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
聯繫銷售