您的位置:首页 > 移动开发 > 微信开发

微信公众号开发(二) 微信图文消息群发

2018-03-17 14:32 471 查看
        微信公众号群发功能步骤

        此文章只是讲解群发步骤,具体实现可以查看官方文档

                /*
* 第一步:获取token认证
* 正确返回结果
* {"access_token":"ACCESS_TOKEN","expires_in":7200}
* 错误返回结果
* {"errcode":40013,"errmsg":"invalid appid"}
*/
String token = "";
net.sf.json.JSONObject tokenJson = UrlConnectionUtil.get(String.format(GET_TOKEN, Configuration.propMap.get("appId"), Configuration.propMap.get("secret")));
if(tokenJson.containsKey("access_token")){
token = tokenJson.getString("access_token");
logger.debug("token==>"+token);
}else{
logger.debug("获取token失败!"+tokenJson.toString());
return;
}

/*
* 获取微信公众号关注者openid列表
* 正确返回结果
* {"total":2,
* "count":2,
* "data":{
     * "openid":["OPENID1","OPENID2"]},
* "next_openid":"NEXT_OPENID"
* }
*  错误返回结果
*  {"errcode":40013,"errmsg":"invalid appid"}
*/
net.sf.json.JSONObject openids = getOpenidList(token,"");
JSONArray openidList = new JSONArray();
if(openids.containsKey("data")){
net.sf.json.JSONObject data = (net.sf.json.JSONObject)openids.get("data");
openidList = data.getJSONArray("openid");
logger.debug("openid==>"+data.toString());
}else{
logger.debug("获取用户openid列表失败"+openids.toString());
return;
}

/*
* 图文消息群发步骤
*/
/*
* 1、图片素材上传(图片) 缩略图(thumb):64KB,支持JPG格式 正确返回结果
* {"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789} 错误返回结果
* {"errcode":40004,"errmsg":"invalid media type"}

* 此处注意:当上传的素材类型为thumb时 正确返回结果
* {"type":"thumb","thumb_media_id":"THUMB_MEDIA_ID"
* ,"created_at":123456789}
*/
String upload_filePath = System.getProperty("user.dir");
upload_filePath = upload_filePath+"\\src\\main\\webapp\\media\\image\\thumb.jpg";
String type = "thumb";
String thumb_media_id = "";
JSONObject uploadMedia = uploadMedia(upload_filePath,token,type);
if(uploadMedia.containsKey("thumb_media_id")){
thumb_media_id = uploadMedia.getString("thumb_media_id");
logger.debug("图片素材上传成功,返回的media_id"+thumb_media_id);
}else{
logger.debug("图片素材上传失败"+uploadMedia.toJSONString());
return;
}

/*
  * 2、图文素材上传
  * 正确返回结果
  * {
      *    "type":"news",
  *    "media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",
  *    "created_at":1391857799
  * }
  * 错误返回结果 {"errcode":40004,"errmsg":"invalid media type"}
  */
net.sf.json.JSONObject uploadNews = uploadNews(thumb_media_id, token);
String news_media_id = "";
if(uploadNews.containsKey("media_id")){
news_media_id = uploadNews.getString("media_id");
logger.debug("图文素材上传成功,返回的media_id"+news_media_id);
}else{
logger.debug("图文素材上传失败"+uploadNews.toString());
return;
}

/*
* 3、群发图文消息 微信官方提供两种群发方式(a、根据标签进行群发【订阅号与服务号认证后均可用】
* b、根据OpenID列表群发【订阅号不可用,服务号认证后可用】) 选去b方式 正确返回结果{ "errcode":0,
* "errmsg":"send job submission success", "msg_id":34182,
* "msg_data_id": 206227730 } 错误返回结果
* {"errcode":40004,"errmsg":"invalid media type"}
*/
/**
* 此处注解,防止调试误发送 可在toSpecifiedOpenid中指定openid进行发送
*/
JSONArray toSpecifiedOpenid = new JSONArray();
toSpecifiedOpenid.add("o9pfrswEdFm66e7l3sWniMudCAG8");
toSpecifiedOpenid.add("o9pfrs0k2bfmmRRLUUwRVBH9wHow");
net.sf.json.JSONObject massNewResult = massNewByOpenid(news_media_id,token, toSpecifiedOpenid);
if(massNewResult.getInt("errcode")==0){
logger.debug("群发消息成功"+massNewResult.toString());
}else{
logger.debug("群发消息失败"+massNewResult.toString());
return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信公众号