主题
公共号消息发送
| 接口名称 | url | 请求方式 | 请求数据类型 |
|---|---|---|---|
| 公共号消息发送 | itb/v1/apps/pubsend | post | application/json |
请求参数
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| from | Object | Y | 发送方 |
| -no | String | Y | 发送方企业的企业注册号(eid),格式为字符串。说明:itb中无企业区分,保持原有E+的eid或是空字符串即可。 |
| -pub | String | Y | 应用id |
| -time | String | Y | 发送时间戳 |
| -nonce | String | Y | 随机串 |
| -pubtoken | String | Y | 公共号加密串:公共号密钥验证规则pubtoken=sha(no,pub,pubsercet,nonce,time) |
| to | List | Y | 接收方 |
| -no | String | Y | 接收方企业号。说明:同上。 |
| -code | String | N | 指定企业全员时须上送'all' |
| -user | String | N | 用户名,指定企业的用户时需上送 |
| type | Int | Y | 消息类型,2:单文本,5:文本链接,6:图文链接 |
| msg | Object | Y | 消息体,消息体根据消息类型而定 |
加密串生成方法
java
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
public class PubaccUtil {
public static JSONObject genernateFrom(String no, String pubId, String pubsercet, String nonce, String time) {
JSONObject jsonFrom = new JSONObject();
jsonFrom.put("no", no);
jsonFrom.put("pub", pubId);
jsonFrom.put("nonce", nonce);
jsonFrom.put("time", time);
String pubtoken = sha(no, pubId, pubsercet, nonce, time);
jsonFrom.put("pubtoken", pubtoken);
return jsonFrom;
}
private static String sha(String... data) {
Arrays.sort(data);
String join = StringUtils.join(data);
String pubtoken = DigestUtils.sha1Hex(join);
return pubtoken;
}
}单文本消息体
json
{
"text":"文本消息内容,格式为字符串"
}文本链接消息体
json
{
"text":"必填,文本消息内容,String",
"url":"文本链接地址,格式为经过URLENCODE编码的字符串",
"appid": "如果想让链接地址携带用户身份(ticket),请传入轻应用ID(appid)",
"todo":"int,必填,暂时只能为0,表示推送原公共号消息",
"sourceid":"备用字段,暂时无用"
}WARNING
“url”:“文本链接地址,格式为参数值经过URLENCODE编码的字符串” 注意:只是参数值编码,不要编码全部路径或者路径包含非法字符,否则无法打开url
图文链接消息体
json
{
"model":"排版展现模板,格式为整型",
"todo":"int,必填,暂时只能为0,表示推送原公共号消息",
"sourceid":"备用字段,暂时无用",
"list":"发布信息列表,格式为包含发布信息JSON对象的JSON数组"
}
model的定义:
1:单条文本编排模板
2:单条图文混排模板
3:多条图文混排模板
list的定义:
根据不同的model定义,list会有不同的格式定义。
model为1时,list的定义:
[
{
"date":"发布日期,格式为包含了'年月日时分秒'字符串",
"title":"消息标题,格式为字符串",
"text":"消息摘要,格式为字符串",
"url":"原文链接,格式为经过URLENCODE编码的字符串",
"appid": "如果想让链接地址携带用户身份(ticket),请传入轻应用ID(appid)"
}
]
model为2时,list的定义:
[
{
"date":"发布日期,格式为包含了'年月日时分秒'字符串",
"title":"消息标题,格式为字符串",
"text":"消息摘要,格式为字符串",
"url":"原文链接,格式为经过URLENCODE编码的字符串",
"appid": "如果想让链接地址携带用户身份(ticket),请传入轻应用ID(appid)",
"name":"图片的文件名,格式为字符串"(传图片时,必须传文件名),
"pic":"图片的二进制字节流,格式为经过BASE64编码的字符串"
}
]
model为3时,list的定义:
[
{
"date":"发布日期,格式为包含了'年月日时分秒'字符串",
"title":"消息标题,格式为字符串",
"text":"消息摘要,格式为字符串",
"url":"原文链接,格式为经过URLENCODE编码的字符串",
"appid": "如果想让链接地址携带用户身份(ticket),请传入轻应用ID(appid)",
"name":"图片的文件名,格式为字符串"(传图片时,必须传文件名),
"pic":"图片的二进制字节流,格式为经过BASE64编码的字符串"
},
{
……
},
……
]
pic的定义:
讯通公共号消息大尺寸缩略图的宽度和高度规格为542px*260px,
小尺寸缩略图的宽度和高度规格为142px*112px,如发送图片的比例不相符,
将会在显示前被裁减。model为3时,第一条消息显示为大尺寸缩略图,其他的为小尺寸缩略图。请求示例
json
curl --location 'https://itb-api-test.tbea.com:9443/api/itb/v1/apps/pubsend' \
--header 'Content-Type: application/json' \
--data '{
"from": {
"no": "101",
"pub": "appId",
"time": "1753172973205",
"nonce": "1753172973205",
"pubtoken": "7c47d0dbe64b675e530dffa286d833f13ee6d59f"
},
"to": [{
"no": "101",
"code": "all"
}],
"type": 2,
"msg":{
"text":"文本消息内容,格式为字符串"
}
}'