消息内容由消息的发送发、接收方、消息类型、身份认证签名等不可见信息以及发布内容等可见信息组成。
备注:消息若要进待办列表,公共号必须上传头像
{
"from":"发送方信息,格式为JSON对象",
"to":"接收方信息,格式为包含一至多个接收方信息JSON对象的JSON数组",
"type":"消息类型,格式为整型",(取值 2:单文本,5:文本链接,6:图文链接)
"msg":"发布到讯通的消息内容,格式为JSON对象"
}
1) from的定义:
{
"no":"发送方企业的企业注册号(eID),格式为字符串",
"pub":"发送使用的公共号ID,格式为字符串",
"time":"发送时间,为'currentTimeMillis()以毫秒为单位的当前时间'的字符串或数字",
"nonce":"随机数,格式为字符串或数字",
"pubtoken":"公共号加密串,格式为字符串。"
}
公共号密钥验证规则pubtoken=sha(no,pubid,pubsercet,nonce,time)
如果您是isv伙伴可以在创建轻应用界面查看pubid,pubsercet。如果您是企业内部轻应用可以登录yunzhijia.com/pubacc系统左边菜单栏 API接口 查看
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import java.util.Arrays;
public static String sha(String... data){
Arrays.sort(data);//按字母顺序排序数组
return DigestUtils.shaHex(StringUtils.join(data));//把数组连接成字符串(无分隔符),并sha1哈希
}
2) to的定义:
[
{
"no":"接收方企业的企业注册号(eID),格式为字符串",
"user":"接收方的用户ID,格式为包含OPENID的JSON数组"
},
{
……
},
……
]
其中,”to”:[] 表示所有订阅的企业和用户。(企业自建公共号此参数不起作用)
其中,”to”:[{“no”:“10001”,”code”:“all”},{“no”:“10002”,”code”:“all”}….] 表示企业10001,10002所有订阅的用户。”code”:“all”一定不要漏,否则报错 (推送待办消息时,此参数不起作用)
其中,”to”:[{“no”:“10001”,”user”:[“1”,”2”]},{“no”:“10002”,”user”:[“3”,”4”]}] 表示企业10001的openid=1,2用户;企业10002的openid=3,4用户。
3) type的定义:
• 2:纯文本信息
• 5:文本链接信息
• 6:图文混排信息
5) msg的定义:
根据不同的type定义,msg会有不同的格式定义。
type为2时,msg的定义:
{
"text":"文本消息内容,格式为字符串"
}
type为5时,msg的定义:
{
"text":"文本消息内容,格式为字符串",
"url":"文本链接地址,格式为经过URLENCODE编码的字符串",
"appid": 如果打开的链接是轻应用,必须传入轻应用号讯通才能传入参数ticket,参考开发,
"todo":"是否推送待办消息,格式为整型,默认1=推送到待办消息;0=推送原公共号消息"(若为1或者不填,公共号必须要有头像),
"sourceid":todo为1时输入,自定义业务id,可选
}
“url”:“文本链接地址,格式为参数值经过URLENCODE编码的字符串” 注意:只是参数值编码,不要编码全部路径或者路径包含非法字符,否则无法打开url
doku.php?id=使用说明&abc=123 编码后为
doku.php?id=%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E&abc=123
todo:是否推送待办消息,默认1=有appid则推送到待办消息;不想推送到待办消息可以设置为0=就是原公共号消息
type为6时,msg的定义:
{
"model":"排版展现模板,格式为整型",
"todo":"是否推送待办消息,格式为整型,默认1=推送到待办消息;0=推送原公共号消息",
"sourceid":todo为1时输入,自定义业务id,
"list":"发布信息列表,格式为包含发布信息JSON对象的JSON数组"
}
5.1) model的定义:
• 1:单条文本编排模板
• 2:单条图文混排模板
• 3:多条图文混排模板
• 4:应用消息模板
5.2) list的定义:
根据不同的model定义,list会有不同的格式定义。
model为1时,list的定义:
[
{
"date":"发布日期,格式为包含了'年月日时分秒'字符串",
"title":"消息标题,格式为字符串",
"text":"消息摘要,格式为字符串",
"zip":"内容压缩包二进制字节流,格式为经过BASE64编码的字符串",
"url":"原文链接,格式为经过URLENCODE编码的字符串",
"appid": 如果打开的链接是轻应用,必须传入轻应用号讯通才能传入参数ticket,参考开发
}
]
“url”:“文本链接地址,格式为参数值经过URLENCODE编码的字符串” 注意:只是参数值编码,不要编码全部路径或者路径包含非法字符,否则无法打开url
doku.php?id=使用说明&abc=123 编码后为
doku.php?id=%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E&abc=123
model为2时,list的定义:
[
{
"date":"发布日期,格式为包含了'年月日时分秒'字符串",
"title":"消息标题,格式为字符串",
"text":"消息摘要,格式为字符串",
"zip":"内容压缩包二进制字节流,格式为经过BASE64编码的字符串",
"url":"原文链接,格式为经过URLENCODE编码的字符串",
"appid": 必填,
"name":"图片的文件名,格式为字符串",
"pic":"图片的二进制字节流,格式为经过BASE64编码的字符串"
}
]
model为3时,list的定义:
[
{
"date":"发布日期,格式为包含了'年月日时分秒'字符串",
"title":"消息标题,格式为字符串",
"text":"消息摘要,格式为字符串",
"zip":"内容压缩包二进制字节流,格式为经过BASE64编码的字符串",
"url":"原文链接,格式为经过URLENCODE编码的字符串",
"appid": 如果打开的链接是轻应用,必须传入轻应用号讯通才能传入参数ticket,参考开发
"name":"图片的文件名,格式为字符串",
"pic":"图片的二进制字节流,格式为经过BASE64编码的字符串"
},
{
……
},
……
]
5.2.1) zip的定义
以zip格式压缩的内容文件夹,文件夹根目录内必须包含名称为index.html的文件,该文件将作为讯通消息查看全文的页面。
5.2.2) pic的定义
讯通公共号消息大尺寸缩略图的宽度和高度规格为542px*260px,小尺寸缩略图的宽度和高度规格为142px*112px,
如发送图片的比例不相符,将会在显示前被裁减。model为3时,第一条消息显示为大尺寸缩略图,其他的为小尺寸缩略图。