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

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

 package cn.sp.bean;

 import java.util.List;
import java.util.Map; /**群发消息
* Created by 2YSP on 2017/7/12.
*/
public class MassMessage {
private List<String> touser;
private String msgtype;
private Map<String,Object> text ; public List<String> getTouser() {
return touser;
} public void setTouser(List<String> touser) {
this.touser = touser;
} public String getMsgtype() {
return msgtype;
} public void setMsgtype(String msgtype) {
this.msgtype = msgtype;
} public Map<String, Object> getText() {
return text;
} public void setText(Map<String, Object> text) {
this.text = text;
}
}

第二步:编写测试类:

 package cn.sp.test;

 import cn.sp.bean.AccessToken;
import cn.sp.bean.MassMessage;
import cn.sp.utils.WeiXinUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.sf.json.JSONObject; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by 2YSP on 2017/7/12.
*/
public class Test {
public static final String URL = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN"; public static void main(String[] args) {
//获取token
AccessToken token = WeiXinUtil.getAccessToken();
String url = URL.replace("ACCESS_TOKEN", token.getToken()); MassMessage massMessage = new MassMessage();
List<String> list = new ArrayList<String>();
list.add("o2fVHwF3EYXzhWa9a_UNlC5TNrEk");
list.add("o2fVHwF3EYXzhWa9a_UNlC5TNrEk");
massMessage.setTouser(list);
massMessage.setMsgtype("text");
Map<String, Object> map = new HashMap<String, Object>();
map.put("content", "hello,<a href='https://www.baidu.com'>点我去百度了</a>");
massMessage.setText(map); Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
String str = gson.toJson(massMessage);
System.out.println("str:"+str); JSONObject jso = WeiXinUtil.doPostStr(url, str);
System.out.println(jso.toString());
}
}

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

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

效果如图:

【微信公众号开发】根据openId群发消息的更多相关文章

  1. .NET微信公众号开发-6.0模板消息

    一.前言 为了保证用户不受到骚扰,在开发者出现需要主动提醒.通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板 ID向用户主动推送提醒.通知消息.这个意思也就 ...

  2. 微信公众号开发 获取openid时报错40029 invalid code 问题的解决

    {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: aELCyY4ce-WOFLAa ...

  3. Python webpy微信公众号开发之 回复图文消息

    新建图文回复模板reply_pictext.xml: $def with (toUser,fromUser,createTime,title1,description1,picurl1,url1)&l ...

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

    作者:王先荣    本文将介绍微信公众号开发中用于群发消息的类MassMessage,包括:(1)MassMessage类:(2)群发:(3)删除:(4)预览:(5)查询发送状态:(6)接收推送群发结 ...

  5. 微信公众号开发之网页中及时获取当前用户Openid及注意事项

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及 ...

  6. 微信公众号开发之根据OpenID列表群发(十四)

    上一篇我们讲述了<微信公众号开发之根据标签进行群发(十二)>,这次我们讲解一下[根据OpenID列表群发] 根据OpenID列表群发[订阅号不可用,服务号认证后可用] 接口调用请求说明 h ...

  7. .net微信公众号开发——消息与事件

    作者:王先荣    本文介绍如何处理微信公众号开发中的消息与事件,包括:(1)消息(事件)概况:(2)验证消息的真实性:(3)解析消息:(4)被动回复消息:(5)发送其他消息.    开源项目地址:h ...

  8. C#微信公众号开发系列教程四(接收普通消息)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  9. ASP.NET MVC4 微信公众号开发之网页授权(二):通过公众号AppID(应用ID)和AppSecret(应用密钥)取得网页授权openid

    ASP.NET MVC4 微信公众号开发之网页授权(一):搭建基础环境 通过了上一篇文章我们已经搭建好了基础开发大环境,现在打开开发环境这里我用的是 vs2013,通过如下方式: 拼接请求链接重定向到 ...

  10. 微信公众号开发C#系列-7、消息管理-接收事件推送

    1.概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后,是允许 ...

随机推荐

  1. 收集的一些Redis操作技巧教程

    redis(1).redis入门 redis(2).redis数据类型 redis(3).基于jedis.spring-data-redis 连接操作redis redis(4).基于redis 构建 ...

  2. MySQL查询count(*)、count(1)、count(field)的区别收集

    经过查询研究得出这个和MySQL中用什么引擎有关,比如InnoDB和MyISAM在处理这count(*).count(1).count(field)都有不同的方式,还有就是和版本都有关系,不同的版本会 ...

  3. dubbo-admin安装和使用

    更新下链接,不知道是不是这个项目合入Apache的缘故,链接都变成了https://github.com/apache/incubator-dubbo/ 按照常理,直接去 https://github ...

  4. IOS开发 序列化与反序列化

    原帖地址:http://blog.csdn.net/ally_ideveloper/article/details/7956942 不会用,记下自己有时间看 序列化与反序列化概述 序列化,它又称串行化 ...

  5. java 返回json数据

    Student st1 = new Student(1, "dg", 18, new Date());            Student st2 = new Student(2 ...

  6. HadoopMapReduce运行机制

    1.map方法读取一个文件的一行记录进行分析,  输入:LongWritable(当前读取的文件位置), Text(内容) 2.map将读取到的信息进行分类,输入Context  (键值对)  ;作为 ...

  7. 利用shuf对数据记录进行随机采样

    最近在用SVM为分类器做实验,但是发现数据量太大(2000k条记录)但是训练时间过长...让我足足等了1天的啊!有人指导说可以先进行一下随机采样,再训练,这样对训练结果不会有太大影响(这个待考证).所 ...

  8. CXF+Spring+Tomcat 案例

    多系统(异构系统)进行交互时,一种良好的方式便是调用Web Service,本示例基于Apache组织的CXF 环境:EclipseJDK6Tomcat6CXF2.6.1Spring3 示例项目结构图 ...

  9. JS之RegExp对象(二)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zkn_CS_DN_2013/article/details/24243159 RegExp对象的经常 ...

  10. Lightoj 1019 - Brush (V)

    算出从点1到点n的最短路径. /* *********************************************** Author :guanjun Created Time :2016 ...