cs java 消息推送,微信公众号 模板消息 定时推送 java

前提:业务需要,要做一个关于月报的微信消息推送。即每个月定时自动发送一条消息 给关注 公众号的人

用的是 公众号的测试账号(实际开发需要认证的公众号)

微信官网的 模板消息接口规则:

1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;

2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;

3、在所选择行业的模板库中选用已有的模板进行调用;

4、每个账号可以同时使用25个模板。

5、当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。

注意点:

1、模板消息调用时主要需要模板ID和模板中各参数的赋值内容;

2、模板中参数内容必须以".DATA"结尾,否则视为保留字;

3、模板保留符号"{{ }}"。我说下 大致思路:首先 根据 appid,appsecret 去调用 "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APPID+"&secret="+APPSecret;

返回 accessToken,这个accessToken是以后我们获取的凭证。 其次:获取所有关注人的openid 去调用 "https://api.weixin.qq.com/cgi-bin/user/get?access_token="+accessToken+"&next_openid="+next_openid;

返回所有用户的openid(注意是数组)最后:向每一个openid的用户发消息咯 调用的接口:"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+accessToken;

注意:这里有post数据,官网有详细说明(json格式,其实是你的传入参数){

"touser":"OPENID",

"template_id":"tamplate_id,

"url":"你需要跳转你服务器的地址",

"data":{

"first": {

"value":"亲爱的童鞋,你好!",

"color":"#173177"

},

"remark":{

"value":"上月月报已到达,请查收!",

"color":"#173177"

}

}

}

在测试的公众号 有自己的 appid,appsecret, 有关注公众号的所有人的openid,还要建立自己的一个消息模板

0f036b9df29b2a4d57d518e88540c1e8.png

fe7843aeff94dd0a01ebb2a7b5e714ae.png

如何连微信服务器:代码如下:(前面讲的获取acceToken,openid都是调用此方法获取的得到)

//MSG为:上面post的数据

public JSONObject HTTPURLUtil(String url,String MSG) {

URL urlGet = null;

JSONObject object = null;

try {

urlGet = new URL(url);

HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();

http.setRequestMethod("GET"); //必须get方式请求

http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

http.setDoOutput(true);

http.setDoInput(true);

System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒

System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒

http.connect();

OutputStream os =null;

if(!MSG.equals("") ) { //写消息数据

os = http.getOutputStream();

os.write(MSG.getBytes("UTF-8")); //传入参数

}

InputStream is = http.getInputStream();

int size = is.available();

byte[] jsonBytes = new byte[ size ];

is.read(jsonBytes);

String message = new String(jsonBytes, "UTF-8");

object = JSONObject.parseObject(message);

//关闭流

if(!MSG.equals("")) {

os.flush();

os.close();

}

is.close();

} catch (Exception e) {

e.printStackTrace();

}

return object;

}

可以去微信官网查看返回json对象的参数来查看是否成功

最后 给出 测试成功 的截图:

03c11b116836472ab0ceb6274bf255fc.png

点击详情:查看月报:(这里的地址为 post 数据里面url参数的地址  需要你自己有服务器,或者有端口映射 )

4ddcc4a70f30dba69d1bce23872b1a16.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值