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

        微信公众号群发功能步骤

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

                

/*

		 * 第一步:获取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;
		 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值