添加超级短信模板


HTTP 头信息:


Accept:application/json;charset=utf-8;
Content-Type:multipart/form-data;


请求


URL:https://vsms.yunpian.com/v2/vsms/add_tpl.json
访问方式:POST



请求参数

参数名类型是否必传是否默认开放描述示例
apikeyString

用户唯一标识,在"账号设置"-"子帐号管理"中查看

9b11127a9701975c
734b8aee81ee3526
signString短信签名【超级短信测试】
layoutjson内容布局的 json 描述文件详见备注
materialByte素材的字节数组,即素材内容压成zip包后转成字节数组。若需在文本中添加变量,请用英文双#号表示,变量名格式为10字以内的英文、数字和短线,如#name_1#
注意: 所有素材文件直接放在zip包根目录下,
zip包内没有文件夹,且所有资源总大小大于660k,小于1.8M。
参考demo示例

callback_url

string

模板审核结果更新后将向这个地址推送。 如推送地址固定,可以在“超级短信设置-数据推送设置”中添加。 如后台已设置地址,且添加模板请求内也包含此参数,将以请求内地址为准。

http://your_receive_url_address


说明:

  1. 模板中至少包含一段文字和一段多媒体内容(图片、视频、音频均可),且素材总数不能超过10个。文字内容中不能包含emoji表情。
  2. 发送特殊行业内容(如游戏、金融、地产等)请提前咨询客服。内容中包含链接、二维码需特殊报备。
  3. 应部分运营商要求,短信末尾会增加退订说明。
  4. 模板自审核通过起3个月内有效,已失效模板需重新提交报备。
  5. layout 参数示例
    可参考 Java 定义类:
    https://github.com/yunpian/yunpian-java-sdk/blob/v1.2.6/src/main/java/com/yunpian/sdk/model/VideoLayout.java
  6. material压缩包中的txt文件编码目前只支持utf-8,如果使用其他编码会导致模版添加失败


{
    "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


响应

名称类型描述
codeinteger0 代表请求成功
msgtext接口状态
tpl_idinteger模板 id


Json 返回示例


{
  "code": 0,
  "msg": "OK",
  "data": {
    "tpl_id": 126
  }
}