概述
微信公众号向用户推送模板消息
首先需要在微信公众号平台添加自己要推送的模板(这边就以测试公众号为例)
根据添加的模板内容与格式数据
接下来就是根据api的接口去调用 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277
(由于网页显示问题 图片截取不全 详细请看官方文档)
模板有了 参数格式也知道了 接下来就是实现!
首先就是获取accessToken
既然要发送模板消息了 那么accessToken肯定也知道如何获取 这里就不再说明了
String accessToken="";
try{
//获取accessToken
accessToken=AccessTokenInfo.accessToken.getAccessToken();
}catch (Exception e) {
logger.error("获取token错误:"+e);
}
// 设置模板id
String template_id = "nSOD0y4L_ILp8a_MvVmddLSPPeiuQ6KTi0uZGin8PmQ";
//设置发送模板的格式
Map<String, Object> map=new HashMap<>();
//设置要发送的用户openid
map.put("touser", "");
//设置模板id
map.put("template_id", template_id);
Map<String, Object> data=new HashMap<>();
Map<String, Object> contentMap=new HashMap<>();
//设置内容 和颜色
contentMap.put("value", "测试内容");
contentMap.put("color", "#173177");
Map<String, Object> remarkMap=new HashMap<>();
//设置内容和颜色
remarkMap.put("value", "测试备注");
remarkMap.put("color", "#173177");
//根据模板内容的key 对应content.DATA
data.put("content", contentMap);
//根据模板内容的key 对应remark.DATA
data.put("remark", remarkMap);
//设置数据
map.put("data", data);
//请求的url
String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="
+ accessToken;
//将数据格式为json数据
String jsonString = new Gson().toJson(map).toString();
// 使用POST请求发送数据
String result = HttpUtil.postData(tmpurl, jsonString, "POST");
//打印返回的数据
System.out.println(result);
if(result!=null && !result.equals("")) {
JSONObject json2 = JSONObject.parseObject(result.toString());
}
下面附加post请求工具类
public class HttpUtil {
//private static final Log logger = Logs.get();
private final static int CONNECT_TIMEOUT = 5000; // in milliseconds
private final static String DEFAULT_ENCODING = "UTF-8";
public static String postData(String urlStr, String data){
return postData(urlStr, data, null);
}
public static String postData(String urlStr, String data, String contentType){
//将字符流放入缓存中,先把字符读到缓存里,到缓存满了或者你flush的时候,再读入内存
BufferedReader reader = null;
try {
//创建URL class的实例
URL url = new URL(urlStr);
//打开URL连接
URLConnection conn = url.openConnection();
//URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
conn.setDoOutput(true);
//设置连接主机超时(单位:毫秒)
conn.setConnectTimeout(CONNECT_TIMEOUT);
//设置从主机读取数据超时(单位:毫秒)
conn.setReadTimeout(CONNECT_TIMEOUT);
if(contentType != null)
conn.setRequestProperty("content-type", contentType);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), DEFAULT_ENCODING);
if(data == null)
data = "";
writer.write(data);
writer.flush();
writer.close();
reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), DEFAULT_ENCODING));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("rn");
}
return sb.toString();
} catch (IOException e) {
//logger.error("Error connecting to " + urlStr + ": " + e.getMessage());
} finally {
try {
if (reader != null)
reader.close();
} catch (IOException e) {
}
}
return null;
}
}
搞定!!!
最后
以上就是顺利季节为你收集整理的微信推送模板消息的全部内容,希望文章能够帮你解决微信推送模板消息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复