模板API接口
創建模版
調用地址
POST https://otp.api.engagelab.cc/v1/template-configs
調用驗證
採用 HTTP 基本認證 的驗證方式,在 HTTP Header(頭)裡加 Authorization:
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
請求體
{
"template_id": "test-template-1", // 自定義的模版id,應用內唯一
"description": "測試模版1", // 該模版的描述說明
"send_channel_strategy": "whatsapp|sms", // 模版的下發策略,支持whatsapp/sms/voice/email四類,組合策略則使用|字符表示失敗補發
"brand_name": "品牌名稱", // 品牌名稱,用在一些國家地區模版內容中的簽名(如短信通道中一些國家地區要求要註冊簽名)
"verify_code_config": { // 驗證碼的配置,用於配置自動生成的驗證碼,模版包含驗證碼類型時必填
"verify_code_type": 1, // 驗證碼類型,取值範圍[1,7]
"verify_code_len": 6, // 驗證碼長度,取值範圍[4,10]
"verify_code_ttl": 1 // 驗證碼有效期,取值範圍[1,10],注意當策略包含whatsapp時取值只能是1,5,10
},
"whatsapp_config": { // whatsapp策略的配置,當下發策略包含whatsapp時有效
"template_type": 1, // whatsapp模版類型,目前僅支持默認模版,即固定取值為1
"template_default_config": { // whatsapp默認模版配置,針對默認模版類型時有效
"contain_security": false, // 是否添加安全提醒
"contain_expire": false // 是否添加過期時間內容
}
},
"sms_config": { // sms策略的配置,當下發策略包含sms時有效
"template_type": 2, // sms模版類型,取值:1-默認模版/2-自定義模版
"template_default_config": { // sms默認模版配置,針對默認模版類型時有效
"contain_security": false, // 是否添加安全提醒
"contain_expire": false // 是否添加過期時間內容
}
"template_custom_config": { // sms自定義模版配置,sms模版類型為自定義模版時有效
"custom_sub_type": "authentication", // 自定義模版類型,取值:authentication-驗證碼/marketing-營銷/utility-通知
"custom_content": "xxx", // 自定義模版內容,注意若子類型為authentication驗證碼類型時必須包含{{code}}變量
"custom_country_codes": "HK,PH" // 自定義模版的目標國家地區,用於模版審核時參考,請按實際填寫,否則可能影響實際下發
}
},
"voice_config": { // voice策略的配置,當下發策略包含voice時有效
"template_type": 1, // voice模版類型,目前僅支持默認模版,即固定取值為1
"template_default_config": { // voice默認模版配置,針對默認模版類型時有效
"contain_security": false, // 是否添加安全提醒
"contain_expire": false // 是否添加過期時間內容
}
},
"email_config": { // email策略的配置,當下發策略包含email時有效
"template_name": "email模板名稱", // email模版名稱
"template_custom_configs": [{ // email自定義模版配置,注意這裡是對象數組,主要是通過language進行區分配置多個
"language": "default", // 語言,default為默認,消息下發時可以根據language參數來匹配不同的模版內容
"pre_from_name": "test", // 預設的發送人名稱
"pre_from_mail": "test@test.com", // 預設的發送人郵箱
"pre_subject": "test", // 預設的郵件主題
"template_content": "預設郵件模版內容,必填,自定義變量如{{self}},驗證碼是{{code}}", // 郵件內容,支持html,變量需要使用兩個大括號{{}}括起來
"pre_param_map": { // 郵件內容中變量的默認值,即下發時若不指定變量值,則採用下述的默認值來替換變量,採用key-value對聲明,value需要使用字符串
"self": "這裡是self變量預設值"
}
}]
},
"pwa_config": { // pwa相關的配置,暫時可以不使用
"pwa_platform": "xx", // 使用的pwa平台,具體取值請與技術支持聯繫獲取確定
"pwa_code": "xx" // 使用的pwa平台中的code
}
}
請求參數
一個請求對象以 JSON 格式表達,因此請求頭需要帶 Content-Type: application/json 。
| 參數 | 類型 | 選項 | 說明 |
|---|---|---|---|
| template_id | String | 必填 | 自定義的模版id,具有唯一性,限制128字符 |
| description | String | 選填 | 模版的描述,限制255字符 |
| send_channel_strategy | String | 必填 | 模版策略,單個通道取值為whatsapp/sms/email/voice,多通道用|隔開,按順序補發,email不能和其他通道一起組成策略 |
| brand_name | String | 選填 | 品牌標誌,在某些模版樣式具有品牌簽名時會替換品牌簽名變量,長度限制在2-10個字符 |
| verify_code_config | Object | 條件必填 | 驗證碼的配置,模版包含驗證碼類型時必填 |
| verify_code_config.verify_code_type | Integer | 必填 | 驗證碼類型,取值範圍[1,7],1數字/2小寫英文字母/4大寫英文字母,可組合(如3表示數字+小寫字母) |
| verify_code_config.verify_code_len | Integer | 必填 | 驗證碼長度,取值範圍[4,10] |
| verify_code_config.verify_code_ttl | Integer | 必填 | 驗證碼有效期,單位分鐘,取值[1,10],策略包含whatsapp時只能為1、5、10 |
| whatsapp_config | Object | 條件必填 | whatsapp策略的配置,下發策略包含whatsapp時必填 |
| whatsapp_config.template_type | Integer | 必填 | whatsapp模版類型,目前僅支持默認模版,固定為1 |
| whatsapp_config.template_default_config | Object | 條件必填 | whatsapp默認模版配置,whatsapp模版類型為默認模版時必填 |
| sms_config | Object | 條件必填 | sms策略的配置,下發策略包含sms時必填 |
| sms_config.template_type | Integer | 必填 | sms模版類型,1-默認模版/2-自定義模版 |
| sms_config.template_default_config | Object | 條件必填 | sms默認模版配置,sms模版類型為默認模版時必填 |
| sms_config.template_custom_config | Object | 條件必填 | sms自定義模版配置,sms模版類型為自定義模版時必填 |
| sms_config.template_custom_config.custom_sub_type | String | 必填 | 自定義模版類型,authentication-驗證碼/marketing-營銷/utility-通知 |
| sms_config.template_custom_config.custom_content | String | 必填 | 自定義模版內容,authentication類型時必須包含{{code}}變量 |
| sms_config.template_custom_config.custom_country_codes | String | 選填 | 目標國家地區代碼,逗號分隔,用於模版審核時參考 |
| voice_config | Object | 條件必填 | voice策略的配置,下發策略包含voice時必填 |
| voice_config.template_type | Integer | 必填 | voice模版類型,目前僅支持默認模版,固定為1 |
| voice_config.template_default_config | Object | 條件必填 | voice默認模版配置,voice模版類型為默認模版時必填 |
| email_config | Object | 條件必填 | email策略的配置,下發策略包含email時必填 |
| email_config.template_name | String | 必填 | email模版名稱 |
| email_config.template_custom_configs | Array | 條件必填 | email自定義模版配置,email模版類型為自定義模版時必填,支持多語言配置 |
| email_config.template_custom_configs.language | String | 必填 | 語言,default為默認,消息下發時可根據language參數匹配不同模版內容 |
| email_config.template_custom_configs.pre_from_name | String | 選填 | 預設的發送人名稱 |
| email_config.template_custom_configs.pre_from_mail | String | 必填 | 預設的發送人郵箱 |
| email_config.template_custom_configs.pre_subject | String | 必填 | 預設的郵件主題 |
| email_config.template_custom_configs.template_content | String | 必填 | 郵件內容,支持html,變量需用{{}}括起來 |
| email_config.template_custom_configs.pre_param_map | Object | 選填 | 郵件內容變量的默認值,key-value對聲明,value需要使用字符串 |
| pwa_config | Object | 選填 | pwa相關配置,暫時可不使用 |
| pwa_config.pwa_platform | String | 選填 | 使用的pwa平台,具體取值請與技術支持聯繫獲取 |
| pwa_config.pwa_code | String | 選填 | 使用的pwa平台中的code |
返回參數
| 字段 | 類型 | 選項 | 描述 |
|---|---|---|---|
| code | Integer | 必填 | 錯誤碼,0表示成功,其他為失敗 |
| message | String | 必填 | 需要校驗的驗證碼 |
成功返回
{
"code": 0,
"message": "success"
}
失敗返回
{
"code": 3003,
"message": "not contains any channel config"
}
錯誤碼
| 錯誤碼 | http code | 說明 |
|---|---|---|
| 1000 | 500 | 內部錯誤 |
| 2001 | 401 | 鑑權失敗,未攜帶正確的 token |
| 2002 | 401 | 鑑權失敗,token已過期或已被禁用 |
| 2004 | 403 | 無調用此 API 的權限 |
| 3001 | 400 | 請求參數格式無效,請檢查是否符合參數格式的 JSON 內容 |
| 3002 | 400 | 請求參數有誤,請檢查請求參數是否符合要求 |
| 3003 | 400 | 業務級別的參數錯誤,請檢查返回 message 字段說明 |
刪除模版
調用地址
DELETE /v1/template-configs/{templateId}
調用驗證
採用 HTTP 基本認證 的驗證方式,在 HTTP Header(頭)裡加 Authorization:
Authorization: Basic ${base64_auth_string}
上述 base64_auth_string 的生成算法為:base64(dev_key:dev_secret)
請求示例
請求頭
DELETE /v1/template-configs/{templateId} HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
請求體
無
請求參數
URL中的{templateId}表示要刪除的模版id,該模版id由創建模版接口時調用方自行定義的
返回參數
| 字段 | 類型 | 選項 | 描述 |
|---|---|---|---|
| code | Integer | 必填 | 錯誤碼,0表示成功,其他為失敗 |
| message | String | 必填 | 需要校驗的驗證碼 |
成功返回
{
"code": 0,
"message": "success"
}
失敗返回
{
"code": 4001,
"message": "config not exist"
}
錯誤碼
| 錯誤碼 | http code | 說明 |
|---|---|---|
| 1000 | 500 | 內部錯誤 |
| 2001 | 401 | 鑑權失敗,未攜帶正確的 token |
| 2002 | 401 | 鑑權失敗,token已過期或已被禁用 |
| 2004 | 403 | 無調用此 API 的權限 |
| 3001 | 400 | 請求參數格式無效,請檢查是否符合參數格式的 JSON 內容 |
| 3002 | 400 | 請求參數有誤,請檢查請求參數是否符合要求 |
| 4001 | 400 | 模版不存在 |
獲取所有模版列表
目前該接口不做分頁,將返回所有的模版列表簡要內容,主要減去了具體的內容,若需要得到內容請使用詳情接口
調用地址
GET /v1/template-configs
調用驗證
採用 HTTP 基本認證 的驗證方式,在 HTTP Header(頭)裡加 Authorization:
Authorization: Basic ${base64_auth_string}
上述 base64_auth_string 的生成算法為:base64(dev_key:dev_secret)
請求示例
請求頭
GET /v1/template-configs HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
請求體
無
請求參數
無
成功返回
[{
"template_id": "test-template-1", // 自定義的模版id,應用內唯一
"description": "測試模版1", // 該模版的描述說明
"send_channel_strategy": "whatsapp|sms", // 模版的下發策略,支持whatsapp/sms/voice/email四類,組合策略則使用|字符表示失敗補發
"brand_name": "品牌名稱", // 品牌名稱,用在一些國家地區模版內容中的簽名(如短信通道中一些國家地區要求要註冊簽名)
"verify_code_config": { // 驗證碼的配置,用於配置自動生成的驗證碼,模版包含驗證碼類型時返回
"verify_code_type": 1, // 驗證碼類型,取值範圍[1,7]
"verify_code_len": 6, // 驗證碼長度,取值範圍[4,10]
"verify_code_ttl": 1 // 驗證碼有效期,取值範圍[1,10],注意當策略包含whatsapp時取值只能是1,5,10
},
"whatsapp_config": { // whatsapp策略的配置,當下發策略包含whatsapp時返回
"template_type": 1 // whatsapp模版類型,目前僅支持默認模版,即固定取值為1
},
"sms_config": { // sms策略的配置,當下發策略包含sms時返回
"template_type": 2, // sms模版類型,取值:1-默認模版/2-自定義模版
"template_parts": 1 // sms模版預估的計費條數,模版過長則會具體的價格=計費條數*計費單價
},
"voice_config": { // voice策略的配置,當下發策略包含voice時返回
"template_type": 1 // voice模版類型,目前僅支持默認模版,即固定取值為1
},
"email_config": { // email策略的配置,當下發策略包含email時返回
"template_name": "email模板名稱" // email模版名稱
},
"pwa_config": { // pwa相關的配置,具有pwa配置時才會返回
"pwa_platform": "xx", // 使用的pwa平台
"pwa_code": "xx" // 使用的pwa平台中的code
},
"created_time": 1234567890, // 該模版的創建時間,時間戳格式,精確到秒
"status": 1, // 模版狀態,取值:1-待審核/2-審核通過/3-審核拒絕
"audit_remark": "xx" // 審核備註,一般當審核拒絕時可以查看該字段看審核拒絕說明
},...] // 注意這裡是object數組
失敗返回
{
"code": 4001,
"message": "config not exist"
}
錯誤碼
| 錯誤碼 | http code | 說明 |
|---|---|---|
| 1000 | 500 | 內部錯誤 |
| 2001 | 401 | 鑑權失敗,未攜帶正確的 token |
| 2002 | 401 | 鑑權失敗,token已過期或已被禁用 |
| 2004 | 403 | 無調用此 API 的權限 |
| 4001 | 400 | 模版不存在 |
獲取模版詳情
調用地址
GET /v1/template-configs/{templateId}
調用驗證
採用 HTTP 基本認證 的驗證方式,在 HTTP Header(頭)裡加 Authorization:
Authorization: Basic ${base64_auth_string}
上述 base64_auth_string 的生成算法為:base64(dev_key:dev_secret)
請求示例
請求頭
GET /v1/template-configs/custom-template-id HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
請求體
無
請求參數
URL中的{templateId}表示要獲取的模版id,該模版id由創建模版接口時調用方自行定義的
成功返回
{
"template_id": "test-template-1", // 自定義的模版id,應用內唯一
"description": "測試模版1", // 該模版的描述說明
"send_channel_strategy": "whatsapp|sms", // 模版的下發策略,支持whatsapp/sms/voice/email四類,組合策略則使用|字符表示失敗補發
"brand_name": "品牌名稱", // 品牌名稱,用在一些國家地區模版內容中的簽名(如短信通道中一些國家地區要求要註冊簽名)
"verify_code_config": { // 驗證碼的配置,用於配置自動生成的驗證碼,模版包含驗證碼類型時返回
"verify_code_type": 1, // 驗證碼類型,取值範圍[1,7]
"verify_code_len": 6, // 驗證碼長度,取值範圍[4,10]
"verify_code_ttl": 1 // 驗證碼有效期,取值範圍[1,10],注意當策略包含whatsapp時取值只能是1,5,10
},
"whatsapp_config": { // whatsapp策略的配置,當下發策略包含whatsapp時返回
"template_type": 1 // whatsapp模版類型,目前僾支持默認模版,即固定取值為1
},
"sms_config": { // sms策略的配置,當下發策略包含sms時返回
"template_type": 2, // sms模版類型,取值:1-默認模版/2-自定義模版
"template_parts": 1, // sms模版預估的計費條數,模版過長則會具體的價格=計費條數*計費單價
"template_custom_config": { // sms自定義模版配置,sms模版類型為自定義模版時有效
"custom_sub_type": "authentication", // 自定義模版類型,取值:authentication-驗證碼/marketing-營銷/utility-通知
"custom_content": "xxx" // 自定義模版內容,注意若子類型為authentication驗證碼類型時必須包含{{code}}變量
}
},
"voice_config": { // voice策略的配置,當下發策略包含voice時返回
"template_type": 1 // voice模版類型,目前僅支持默認模版,即固定取值為1
},
"email_config": { // email策略的配置,當下發策略包含email時返回
"template_name": "email模板名稱", // email模版名稱
"template_custom_configs": [{ // email自定義模版配置,email模版類型為自定義模版時有效,注意這裡是對象數組,主要是通過language進行區分配置多個
"language": "default", // 語言,default為默認,消息下發時可以根據language參數來匹配不同的模版內容
"pre_from_name": "test", // 預設的發送人名稱
"pre_from_mail": "test@test.com", // 預設的發送人郵箱
"pre_subject": "test", // 預設的郵件主題
"template_content": "預設郵件模版內容,必填,自定義變量如{{self}},驗證碼是{{code}}", // 郵件內容,支持html,變量需要使用兩個大括號{{}}括起來
"pre_param_map": { // 郵件內容中變量的默認值,即下發時若不指定變量值,則採用下述的默認值來替換變量,採用key-value對聲明
"self": "這裡是self變量預設值"
}
}]
},
"pwa_config": { // pwa相關的配置,具有pwa配置時才會返回
"pwa_platform": "xx", // 使用的pwa平台
"pwa_code": "xx" // 使用的pwa平台中的code
},
"created_time": 1234567890, // 該模版的創建時間,時間戳格式,精確到秒
"status": 1, // 模版狀態,取值:1-待審核/2-審核通過/3-審核拒絕
"audit_remark": "xx" // 審核備註,一般當審核拒絕時可以查看該字段看審核拒絕說明
}
失敗返回
{
"code": 4001,
"message": "config not exist"
}
錯誤碼
| 錯誤碼 | http code | 說明 |
|---|---|---|
| 1000 | 500 | 內部錯誤 |
| 2001 | 401 | 鑑權失敗,未攜帶正確的 token |
| 2002 | 401 | 鑑權失敗,token已過期或已被禁用 |
| 2004 | 403 | 無調用此 API 的權限 |
| 4001 | 400 | 模版不存在 |








