微信公众号开发根据openId群发消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众号开发根据openId群发消息相关的知识,希望对你有一定的参考价值。

根据开发文档可知,只要使用POST方式提交固定格式的json字符串到那个地址即可。这里我写的是最简单的文本

第一步:建立对应的实体类。

 1 package cn.sp.bean;
 2 
 3 import java.util.List;
 4 import java.util.Map;
 5 
 6 /**群发消息
 7  * Created by 2YSP on 2017/7/12.
 8  */
 9 public class MassMessage {
10     private List<String> touser;
11     private String msgtype;
12     private Map<String,Object> text ;
13 
14     public List<String> getTouser() {
15         return touser;
16     }
17 
18     public void setTouser(List<String> touser) {
19         this.touser = touser;
20     }
21 
22     public String getMsgtype() {
23         return msgtype;
24     }
25 
26     public void setMsgtype(String msgtype) {
27         this.msgtype = msgtype;
28     }
29 
30     public Map<String, Object> getText() {
31         return text;
32     }
33 
34     public void setText(Map<String, Object> text) {
35         this.text = text;
36     }
37 }

第二步:编写测试类:

 

 1 package cn.sp.test;
 2 
 3 import cn.sp.bean.AccessToken;
 4 import cn.sp.bean.MassMessage;
 5 import cn.sp.utils.WeiXinUtil;
 6 import com.google.gson.Gson;
 7 import com.google.gson.GsonBuilder;
 8 import net.sf.json.JSONObject;
 9 
10 import java.util.ArrayList;
11 import java.util.HashMap;
12 import java.util.List;
13 import java.util.Map;
14 
15 /**
16  * Created by 2YSP on 2017/7/12.
17  */
18 public class Test {
19     public static final String URL = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN";
20 
21     public static void main(String[] args) {
22         //获取token
23         AccessToken token = WeiXinUtil.getAccessToken();
24         String url = URL.replace("ACCESS_TOKEN", token.getToken());
25 
26 
27         MassMessage massMessage = new MassMessage();
28         List<String> list = new ArrayList<String>();
29         list.add("o2fVHwF3EYXzhWa9a_UNlC5TNrEk");
30         list.add("o2fVHwF3EYXzhWa9a_UNlC5TNrEk");
31         massMessage.setTouser(list);
32         massMessage.setMsgtype("text");
33         Map<String, Object> map = new HashMap<String, Object>();
34         map.put("content", "hello,<a href=\'https://www.baidu.com\'>点我去百度了</a>");
35         massMessage.setText(map);
36 
37         Gson gson = new GsonBuilder().setPrettyPrinting().disablehtmlEscaping().create();
38         String str = gson.toJson(massMessage);
39         System.out.println("str:"+str);
40 
41         JSONObject jso = WeiXinUtil.doPostStr(url, str);
42         System.out.println(jso.toString());
43     }
44 }

这里是使用httpClient发起的请求,gson将对象转换为json字符串。

注意openId至少为两个,否则返回报错不能发送,如果只有一个openId的话可以写两遍。

效果如图:

以上是关于微信公众号开发根据openId群发消息的主要内容,如果未能解决你的问题,请参考以下文章

httpClient实现微信公众号消息群发

.net微信公众号开发——群发消息

8 微信公众号--群发消息接口简略部署

微信群发图文消息

JAVA微信公众号开发回复消息能回复多条吗?具体怎么代码实现?

微信开发之群发