自訂驗證碼下發
如果您希望自行生成驗證碼而不透過 EngageLab 平台生成,可以呼叫本 API。
本 API 專用於發送預先生成的驗證碼,不會自行生成驗證碼。發送驗證碼後,無須呼叫驗證 API 進行驗證。
如果您希望 EngageLab 平台生成驗證碼,可以呼叫 EngageLab OTP 驗證碼下發 API。
呼叫網址
POST https://otp.api.engagelab.cc/v1/codes
呼叫驗證
請參考 呼叫驗證 了解如何進行 API 驗證。
請求範例
請求標頭
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
此代碼塊在浮窗中顯示
請求主體
{
"to": "+6591234567",
"code":"398210",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
{
"to": "+6591234567",
"code":"398210",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
此代碼塊在浮窗中顯示
請求參數
一個請求物件以 JSON 格式表示,因此請求標頭需要帶 Content-Type: application/json。
| 參數 | 類型 | 選項 | 說明 |
|---|---|---|---|
| to | String | 必填 | 發送目標,手機號碼或電子郵件地址,+6598765432,support@engagelab.com |
| code | String | 必填 | 要發送的自訂驗證碼 |
| 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 的說明
- 對於範本有預設的欄位如 from_id,若不傳 params 欄位值,則訊息下發時使用範本預設的 from_id;
- 若傳遞了 params 欄位值,如
params:{"from_id":"12345"},則訊息下發時,範本的 from_id 將會替換成 12345; - 同時對於建立範本時範本內容有自訂的變數欄位,也都透過 params 進行賦值,如範本內容
Hi {{name}}, your verify code is {{code}},此時需要賦值參數params:{"name":"Bob"} - Email 管道特殊變數:對於 Email 管道,支援透過
params動態覆蓋郵件主旨(subject)、寄件者名稱(from_name)、寄件者信箱(from_mail)等。詳細的高階用法請參考 建立範本 - Email 範本變數高階用法。
回傳參數
成功返回
| 欄位 | 類型 | 選項 | 描述 |
|---|---|---|---|
| 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 | 號碼未註冊/空號 |










