範本 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 | 範本不存在 |










