• 【微信公众号开发】根据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的话可以写两遍。

    效果如图:

  • 相关阅读:
    Google Chrome 自定义协议(PROTOCOL)问题的处理
    C# 6.0/7.0 的新特性
    MySQL 5.7.18 压缩包版配置记录
    nginx.conf文件内容详解
    博客添加动态动漫妹子
    TypeScript 3.8beta版
    微信浏览器H5开发常见的坑
    Babel7知识梳理
    雅虎前端优化35条规则
    webpack
  • 原文地址:https://www.cnblogs.com/2YSP/p/7158039.html
Copyright © 2020-2023  润新知