添加超级短信模板


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包内没有文件夹,且所有资源小于1.8M。
参考demo示例

callback_url

string

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

http://your_receive_url_address


备注:

1.因运营商限制,仅联通、电信通道支持发送变量模板。

2.layout 参数示例

可参考 Java 定义类:
https://github.com/yunpian/yunpian-java-sdk/blob/v1.2.6/src/main/java/com/yunpian/sdk/model/VideoLayout.java


{
    "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
from requests_toolbelt.multipart import MultipartEncoder

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'
    m_data = MultipartEncoder(
        fields={
            'apikey': 'xxxxxxx',
            'sign': 'xxxxxxxx',
            'layout': json.dumps(layout),
            'material': (filepath, open(filepath, 'rb'), 'application/octet-stream')
        },
    )
    headers = {
        'Content-Type': m_data.content_type
    }

    r = requests.post(url, data=m_data, headers=headers)
    print(r.text)
    return 0


响应

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


Json 返回示例


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