JAVA后端推送企业微信消息到普通微信

createh52周前 (12-12)技术教程17

接收消息的用户不需要安装企业微信,普通微信就可以。特殊情况开发者需要推送某些即时消息到普通微信端的时候可用,支持推送文字,图文,视频,文件,markdown,及模板等消息

# 1.申请注册企业微信(目前个人能注册)

https://work.weixin.qq.com/wework_admin/register_wx?from=myhome

# 2.添加一个应用,主要是为了拿到AgentId和Secret(下图)

# 3.查看新建应用的AgentId和Secret

# 4.查看刚才注册的企业ID

打开UC浏览器 查看更多精彩图片

# 5.腾讯企业微信的接口

腾讯企业微信API文档地址:

https://work.weixin.qq.com/api/doc/90000/90135/90664

调用流程:获取access_token -> 调用具体的API接口

# 6.编写java工具类

示例代码:

public class SendWxMessageUtil {

//新建应用的agentid

private static String agentid = "应用的agentid";

//新建应用的corpsecret

private static String corpsecret = "应用的corpsecret";

//企业ID

private static String corpid = "企业ID";

//腾讯企业微信接口:获取TOKEN地址(GET)

private static String apiGetTokenUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret;

//腾讯企业微信接口:发送消息(POST)

private static String apiSendMessageUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=";

/**

* 发送企业微信文本类消息

* @param userId 用户ID可在企业微信后台查看关注用户的ID,@all表示全体用户

* @param content 消息正文

*/

public static void sendTextMsg(String userId,String content){

String token=JSONObject.parseObject(HttpClientUtil.doGet(apiGetTokenUrl)).getString("access_token");

Map<String,Object> struct = new HashMap<>(); //要发送的消息结构体

Map<String,Object> msgcontent = new HashMap<>(); //消息正文

msgcontent.put("content",content);

struct.put("agentid",agentid); //企业微信中的小程序ID

struct.put("msgtype","text"); //消息类型,这里是text文本型

struct.put("touser",userId); //接收用户的ID,全部用户是"@all" 指定接收消息的成员,成员ID列表(多个接收者用‘|’分隔,最多支持1000个)

struct.put("text",msgcontent);

JSONObject res = JSONObject.parseObject(HttpClientUtil.doPostJson(apiSendMessageUrl + token, JSONObject.toJSONString(struct)));

System.out.println(res);//返回体:{"errcode":0,"errmsg":"ok","msgid":""} errcode为0表示成功

}

}

其中HttpClientUtil.doGet 和 HttpClientUtil.doPostJson 是封装的一个HTTP请求的工具类,网上现成的很多。

7.调用

在需要的地方调用就可以了

@RequestMapping("/sendwxmessage")

public ResultVO sendWxmMssage(){

SendWxMessageUtil.sendTextMsg("@all","测试测试");

return new ResultVO(ResultCode.SUCCESS);

}

相关文章

干货|SpringBoot集成极光推送完整实现代码(建议收藏)

工作中经常会遇到服务器向App推送消息的需求,一般企业中选择用极光推送的比较多,在集成极光时发现极光的文档并不完整,网上的文章也很多不能直接使用,这里列出我在工作中集成极光的全部代码,只需要按照如下代...

SpringBoot 如何实现消息自动推送机制?

在实际开发过程中,实现消息自动推送机制的方式有很多种,比较常见的方式有如下几种,WebSocket、SSE(Server-Sent Events)、消息队列(如 RabbitMQ、Kafka)等,下面...

一文带你彻底搞懂Redis实现消息的订阅发布

前言Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接受消息。Redis客户端可以订阅任意数量的频道!一、实现订阅发布功能①命令:这些命令被广泛用于构...

利用webSocket实现消息的实时推送

1. 什么是webSocketwebSocket实现实现推送消息WebSocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。以前的推送技术使用 Ajax 轮询,浏览器需...

轻松实现服务器事件推送!Spring SseEmitter 详解

引言服务器推送技术背景简介服务器推送(Server Push)技术允许网站和应用在有新内容可用时主动向用户推送更新,而不需要用户主动去查询。与传统的"拉"模型不同,服务器推送采用...