根据开发文档可知,只要使用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的话可以写两遍。

效果如图:

转载于:https://www.cnblogs.com/2YSP/p/7158039.html

【微信公众号开发】根据openId群发消息相关推荐

  1. 微信公众号开发 - 事件处理和回复消息

    微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...

  2. 教程: nodejs 做微信公众号开发,回复 xml 消息

    教程: nodejs 做微信公众号开发,回复 xml 消息 首先需要你的后台跟服务器已经可以建立连接,这个不再冗述看官方教程就好 接入指南 .此篇介绍的是如何获取用户发来的信息,并回复它. 一.接收 ...

  3. 微信公众号开发获取openID以及用户详细信息,超详细步骤,亲测开发

    好久没有发过博文了,恰好这两天做了一个关于微信公众号开发的东东,拿出来和大家分享一下. 需要做一套微信签到.抽奖系统,我要在后台存储微信用户的相关信息,openIDNickname之类的信息.在开发前 ...

  4. 微信公众号开发之上传图文消息素材(十二)

    群发消息太重要了,公众号管理员需要定期通过公众号群发一些消息,用户通过推送的消息可以定期了解公众号的最新信息. 群发图文消息的过程如下: 首先,预先将图文消息中需要用到的图片,使用上传图文消息内图片接 ...

  5. java上传图文消息_微信公众号开发之上传图文消息素材(十二)

    群发消息太重要了,公众号管理员需要定期通过公众号群发一些消息,用户通过推送的消息可以定期了解公众号的最新信息. 群发图文消息的过程如下: 首先,预先将图文消息中需要用到的图片,使用上传图文消息内图片接 ...

  6. 微信公众号开发--接收与回复消息(Java)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 第一步: ...

  7. 微信公众号测试号配置,群发消息(go实现)

    配置服务器(以本地服务器127.0.0.1:8080为例) ⑴新建项目(这里用的goframe框架) 路由: var (Main = gcmd.Command{Name: "main&quo ...

  8. PHP+TP框架实现微信公众号开发之发送模板消息

    一:准备工作. 1.将需要使用到的微信配置放在config.php配置文件中方便获取.(我使用的是微信测试号) return array(//'配置项'=>'配置值''appID'=>'w ...

  9. 微信公众号开发:接收通用消息与事件

    接收消息 当普通微信用户向公众账号发送消息时,微信服务器将POST消息的XML数据包到开发者在微信公众号管理后台中配置的服务器地址URL上. 常见消息类型的推送XML数据包结构如下. 文本消息 < ...

  10. 微信公众号开发-接收与回复消息

    微信公众平台:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432&token=&lang=zh_ ...

最新文章

  1. HALCON查找圆心
  2. Android开发中常见的设计模式
  3. 没有日志 mysql 5.6主从同步_mysql之 mysql 5.6不停机主从搭建(一主一从基于日志点复制)...
  4. java char 8192_java.net.ProtocolException:预期229个字节,但收到8192
  5. Office组件无法正常使用的解决方法
  6. 【NetApp】exportfs命令的使用
  7. cad无法修复图形文件_CAD应用技巧:DWG图形的“瘦身”
  8. 2017.4找工作面试记录-第三周(2)--金蝶
  9. 2022年大厂中秋礼盒大赏,卷的就是创意!
  10. TV直播app TV版 超级直播 空壳 可玩性强 带EPG 带回看 带自定义 定制可带自定义协议等
  11. 等差素数列 蓝桥杯 python
  12. 保持简单----纪念丹尼斯里奇(Dennis Ritchie) (zz.is2120.BG57IV3)
  13. OutMan——Objective-C中分类、延展、非正式协议和协议
  14. 华为路由器ospf路由表解读_华为路由如何建立OSPF网络详解
  15. Apache Calcite初探和csv简单例子
  16. ❤️Hello Programmer❤️
  17. “人生搜索引擎” # Rewind
  18. java 简单的聊天室_Java简单聊天室
  19. BIM模型文件下载——轻轨站模型
  20. android 4.0 安全模式分析

热门文章

  1. c语言中尖括号的作用,C语言中,#include
  2. @property (nonatomic,retain)中的nonatom和retain是什么意思
  3. flash制作文字笔顺_flash动画课件制作有什么优点
  4. mysql基础知识(二)
  5. dsc linux 软件安装_介绍一个linux各软件安装教程网站linuxize
  6. 2020-04-27 三种内存屏障 acquire barrier / release barrier / full barrier
  7. JavaWeb那些事儿(二)--java中类、成员和方法的访问权限
  8. Rust 与服务端编程的碎碎念
  9. Services in Kubernetes
  10. 网络游戏中的数据包设计和定义(初论)