添加超级短信模板
HTTP 头信息:
Accept:application/json;charset=utf-8;
Content-Type:multipart/form-data;
请求
URL:https://vsms.yunpian.com/v2/vsms/add_tpl.json
访问方式:POST
请求参数
参数名 | 类型 | 是否必传 | 是否默认开放 | 描述 | 示例 |
apikey | string | 是 | 是 | 用户唯一标识,在"账号设置"-"子帐号管理"中查看 | 9b11127a9701975c |
sign | string | 是 | 是 | 短信签名 | 【超级短信测试】 |
layout | json | 是 | 是 | 内容布局的 json 描述文件 | 详见备注 |
material | byte | 是 | 是 | 素材的字节数组,即素材内容压成zip包后转成字节数组。若需在文本中添加变量,请用英文双#号表示,变量名格式为10字以内的英文、数字和短线,如#name_1# | 参考demo示例 |
callback_url | string | 否 | 否 | 模板审核结果更新后将向这个地址推送。 如推送地址固定,可以在“超级短信设置-数据推送设置”中添加。 如后台已设置地址,且添加模板请求内也包含此参数,将以请求内地址为准。 | |
mobileStatSid | string | 否 | 否 | 云片短链sid,为模板文本中出现的云片短链开启统计手机号功能时传,多个用英文逗号分隔,如 YJfXdN,YRDOnF。请提前联系客服开通此功能。 |
说明:
- 模板中至少包含一段文字和一段多媒体内容(图片、视频、音频均可),且素材总数不能超过10个。文字内容中不能包含emoji表情。
- 发送特殊行业内容(如游戏、金融、地产等)请提前咨询客服。内容中包含链接、二维码需特殊报备。
- 应部分运营商要求,短信末尾会增加退订说明。
- 模板自审核通过起30天内有效,已失效模板需重新提交报备。
- layout 参数示例
可参考 Java 定义类:https://github.com/yunpian/yunpian-java-sdk/blob/v1.2.6/src/main/java/com/yunpian/sdk/model/VideoLayout.java
- material压缩包中的txt文件编码目前只支持utf-8,如果使用其他编码会导致模版添加失败
- 图片只支持jpg、gif、png格式
{
"vlVersion": "0.0.1", //布局文件版本号
"subject": "title", //主题说明,限制20个字符
"frames": [ //布局的帧内容,手机将从上到下依次显示index值从1-N
{
"index": 1, //第1帧
"playTimes": 1, //播放次数,目前没有使用
"attachments": [ //帧内容
{
"index": 1, //帧内素材出现次序,实际次序由供应商决定
"fileName": "text1.txt" //对应material压缩包里的文件
},
{
"index": 2,
"fileName": "vedio.mp4" //对应material压缩包里的文件
}
]
},
{
"index": 2, // 第2帧
"playTimes": 1,
"attachments": [
{
"index": 1,
"fileName": "text2.txt"
},
{
"index": 2,
"fileName": "image.jpg"
}
]
}
... // 其他帧
]
}
请求示例
python3:
import json
import requests
layout = {
"vlVersion": "0.0.1",
"subject": "title",
"frames": [
{
"index": 1,
"playTimes": 1,
"attachments": [
{
"index": 1,
"fileName": "text1.txt"
},
{
"index": 2,
"fileName": "img1.jpg"
}
]
}
]
}
def add_tpl(filepath):
"""
:param filepath: 文件路径
:return:
"""
url = 'https://vsms.yunpian.com/v2/vsms/add_tpl.json'
data = {
'apikey': 'xxxx',
'sign': 'xxxx',
'layout': json.dumps(layout),
}
files = {
'material': (filepath, open(filepath, 'rb'), 'application/octet-stream')
}
r = requests.post(url, data=data, files=files)
print(r.text)
return 0
响应
名称 | 类型 | 描述 |
code | integer | 0 代表请求成功 |
msg | text | 接口状态 |
tpl_id | integer | 模板 id |
Json 返回示例
{
"code": 0,
"msg": "OK",
"data": {
"tpl_id": 126
}
}