Skip to content

公共号消息发送 ​

接口名称url请求方式请求数据类型
公共号消息发送itb/v1/apps/pubsendpostapplication/json

请求参数 ​

字段类型是否必填说明
fromObjectY发送方
-noStringY发送方企业的企业注册号(eid),格式为字符串。说明:itb中无企业区分,保持原有E+的eid或是空字符串即可。
-pubStringY应用id
-timeStringY发送时间戳
-nonceStringY随机串
-pubtokenStringY公共号加密串:公共号密钥验证规则pubtoken=sha(no,pub,pubsercet,nonce,time)
toListY接收方
-noStringY接收方企业号。说明:同上。
-codeStringN指定企业全员时须上送'all'
-userStringN用户名,指定企业的用户时需上送
typeIntY消息类型,2:单文本,5:文本链接,6:图文链接
msgObjectY消息体,消息体根据消息类型而定

加密串生成方法 ​

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":"文本消息内容,格式为字符串"
    }
}'