微信公众号发消息给关注用户

前一段时间项目中遇到一个稍微麻烦一点的问题。

即客户要求,他在后台编辑好文章后要主动给每个用户都发送消息,并可以让用户点击直接进入文章页面。

于是乎,当时脑子一热,想着没什么大的问题,so easy。模板消息不就得了。

后来在写代码的过程中却发现,并不行。

1.必须有用户主动触发事件方可发送模板消息

2.模板消息一分钟只能发送六十条,超过六十条,不好意思。你懂。

于是乎,就想到了另一种方法:群发消息

但是一看文档中群发消息的限制,发现悲催了

群发消息服务号每个月最多只能发送4条。

而客户要求的是随时随地就能发送.这个4条明显不符合要求的。

怎么办呢?一度陷入困难之中。只好继续查看开发文档。

当看到客服功能时,突然想到,能不能用客服主动给用户发送消息呢?

于是乎,想到就去试验下。

然后就进入代码环节了。

然后就是主动发送消息的方法

//获取access_token的方法。

//调用发送方法

StringBuffer sb = new StringBuffer(); sb.append("{"); sb.append(""touser":"" + openid + "","); sb.append(""msgtype":"text","); sb.append(""text":{"); sb.append(""content":"" + content + """); sb.append("}"); sb.append("}"); String json = sb.toString(); try { URL uRl = new URL(wxaction);

HttpsURLConnection http = (HttpsURLConnection)uRl.openConnection();

http.setRequestMethod("POST");

http.setRequestProperty("Content-Type", "application/json;charset=UTF-8");

http.setDoOutput(true);

http.setDoInput(true);

System.setProperty("sun.net.client.defaultConnectTimeout", "30000");

System.setProperty("sun.net.client.defaultReadTimeout", "30000");

http.connect();

OutputStream os = http.getOutputStream();

os.write(json.getBytes("UTF-8"));

InputStream is = http.getInputStream();

int size = is.available();

byte[] jsonBytes = new byte[size];

is.read(jsonBytes);

String result = new String(jsonBytes, "UTF-8");

System.out.println("请求返回结果:" + result);

os.flush();

os.close(); } catch (Exception e) { e.printStackTrace(); } return true; }

//调用发送方法
sendmsg(content,openid,wxACCESS_TOKEN);

时候直接调用 sendmsg()方法传值就可以了。

最后上完成的图

2.用户只能连续收到 20 条客服消息。超过后用户就收不到消息,

经验分享 程序员 微信小程序 职场和发展