1.获取access_token:
请求方式: GET(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
参数 | 必须 | 说明 |
---|---|---|
corpid | 是 | 企业ID,获取方式参考:术语说明-corpid |
corpsecret | 是 | 应用的凭证密钥,获取方式参考:术语说明-secret |
此处corpsecret 是你小程序在企业微信下的corpsecret
2.发送消息
请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
{
"touser" : "zhangsan|lisi",
"toparty": "1|2",
"totag": "1|2",
"msgtype" : "miniprogram_notice",
"miniprogram_notice" : {
"appid": "wx123123123123123",
"page": "pages/index?userid=zhangsan&orderid=123123123",
"title": "会议室预订成功通知",
"description": "4月27日 16:16",
"emphasis_first_item": true,
"content_item": [
{
"key": "会议室",
"value": "402"
},
{
"key": "会议地点",
"value": "广州TIT-402会议室"
},
{
"key": "会议时间",
"value": "2018年8月1日 09:00-09:30"
},
{
"key": "参与人员",
"value": "周剑轩"
}
]
},
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
基础参数类:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WorkWeChatSendMessageRequest {
/**
* 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。
* 特殊情况:指定为@all,则向关注该企业应用的全部成员发送
*/
private String touser;
/**
* 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
*/
private String toparty;
/**
* 标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
*/
private String totag;
/**
* 消息类型
*/
private String msgtype;
/**
* 企业应用的id
*/
private String agentid;
/**
* 表示是否开启id转译,0表示否,1表示是,默认0
*/
private String enable_id_trans;
/**
* 表示是否开启重复消息检查,0表示否,1表示是,默认0
*/
private String enable_duplicate_check;
/**
* 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时
*/
private String duplicate_check_interval;
}
小程序特有参数
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MiniProgramNotice {
/**
* 小程序appid,必须是与当前应用关联的小程序
*/
private String appid;
/**
* 点击消息卡片后的小程序页面,仅限本小程序内的页面。该字段不填则消息点击后不跳转。
*/
private String page ;
/**
* 消息标题,长度限制4-12个汉字(支持id转译)
*/
private String title;
/**
* 消息描述,长度限制4-12个汉字(支持id转译)
*/
private String description;
/**
* 是否放大第一个content_item
*/
private boolean emphasis_first_item;
/**
* 消息内容键值对,最多允许10个item
*/
private List<Map<String, String>> content_item;
/**
* 参数
*
* @param key
* @param value
* @return
*/
public Map<String, String> item(String key, String value) {
Map<String, String> params = new HashMap<>();
params.put("key", key);
params.put("value", value);
return params;
}
}
请求体类(便于直接 toJosn 发送请求)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MiniProgramNoticeParam extends WorkWeChatSendMessageRequest{
private MiniProgramNotice miniprogram_notice;
}
发送请求
String sendUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN";
HttpsUtil.https(sendUrl, JSON.toJSONString(miniProgramNoticeParam));