公眾號傳送模板資訊java實現(主動傳送)
效果
以測試公眾號為例
- 點選進入 測試公眾號
- 官方教程
- 點選新增目標模板
- 程式碼
WxTemplate 類
package com.project.voicememoassistant.model;
import java.util.Map;
public class WxTemplate {
/**
* 模板訊息id
*/
private String template_id;
/**
* 使用者openId
*/
private String touser;
/**
* URL置空,則在傳送後,點選模板訊息會進入一個空白頁面(ios),或無法點選(android)
*/
private String url;
/**
* 標題顏色
*/
private String topcolor;
/**
* 詳細內容
*/
private Map<String,TemplateData> data;
public String getTemplate_id() {
return template_id;
}
public void setTemplate_id(String template_id) {
this.template_id = template_id;
}
public String getTouser() {
return touser;
}
public void setTouser(String touser) {
this.touser = touser;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTopcolor() {
return topcolor;
}
public void setTopcolor(String topcolor) {
this.topcolor = topcolor;
}
public Map<String, TemplateData> getData() {
return data;
}
public void setData(Map<String, TemplateData> data) {
this.data = data;
}
}
TemplateData 類
package com.project.voicememoassistant.model;
public class TemplateData {
private String value;
private String color;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
傳送方法
openId就是關注的使用者列表中的微訊號
package com.project.voicememoassistant.tools;
import com.project.voicememoassistant.model.TemplateData;
import com.project.voicememoassistant.model.WxTemplate;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;
public class WechatSendTemplate {
public static String appID = "這裡寫上自己的APPID";
public static String appsecret = "這裡寫上自己的APPsecret";
/***
* 提醒事件查詢
* @param openId
* @param keyValue1 待完成目標的內容
*/
public static void sendTemplate(String openId,String keyValue1){
String token = getAccessToken();
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
WxTemplate wxTemplate = new WxTemplate();
wxTemplate.setTemplate_id("這裡寫上你之前新建的模板id");
wxTemplate.setTouser(openId);
wxTemplate.setUrl("https://cn.bing.com/");
wxTemplate.setTopcolor("#FF0000");
Map<String, TemplateData> map = new HashMap<>();
TemplateData first = new TemplateData();
first.setColor("#868586");
first.setValue("這裡填寫你要傳送的模板資訊");
map.put("first", first);
TemplateData keyword1 = new TemplateData();
keyword1.setColor("#173177");
keyword1.setValue(keyValue1);
map.put("keyword1",keyword1);
wxTemplate.setData(map);
JSONObject json = JSONObject.fromObject(wxTemplate);//將java物件轉換為json物件
RestTemplate restTemplate = new RestTemplate();
Object forObject = restTemplate.postForObject(url,json,Object.class);
System.out.println(forObject);//列印是否傳送成功
}
/**
* 網頁授權access_token
*/
public static String getAccessToken() {
RestTemplate restTemplate = new RestTemplate();
String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?appid="+appID+"&secret="+appsecret+"&grant_type=client_credential";
Object forObject = restTemplate.getForObject(access_token_url, Object.class);
JSONObject jsonToken = JSONObject.fromObject(forObject);
String token = null;
if (StringUtils.isNotBlank(String.valueOf(jsonToken))) {
token = jsonToken.getString("access_token");
}
return token;
}
}
可能需要pom.xml上加的依賴
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
- 可以用springboot的定時方式來傳送
相關文章
- 微信公眾號如何實現模板訊息傳送的功能
- 微信公眾號傳送模板訊息,出現亂碼問題---字元中文編碼問題字元
- 能同步傳送微信公眾號訊息的部落格系統
- 使用微信公眾平臺傳送報警資訊(Python版)薦Python
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 微信小程式 傳送模板訊息的功能實現微信小程式
- Python3實現自動傳送MySql查詢併傳送郵件PythonMySql
- 如何用python實現郵箱傳送資訊Python
- TNW-傳送模板訊息TNW
- iOS12系統應用傳送普通郵實現傳送iOS
- java郵件傳送Java
- java傳送郵件Java
- 簡訊傳送機的實現
- oracle 傳送郵件 實現方法Oracle
- Django實現傳送郵件功能Django
- 用Perl實現郵件傳送
- python實現傳送郵件Python
- ASP.NET微信公眾號用於給指定OpenId使用者傳送紅包ASP.NET
- DNS域傳送資訊洩露DNS
- liunx通過TCP傳送資訊TCP
- Java傳送Post請求Java
- java傳送http請求JavaHTTP
- 在Java中,使用HttpUtils實現傳送HTTP請求JavaHTTP
- Java實現QQ郵件傳送郵件工具類Java
- 「大前端」weex裡native主動傳送事件到JS的方案實現前端事件JS
- django+小程式傳送模板訊息Django
- 設定訊號傳送鬧鐘
- SpringBoot 實現傳送簡訊Spring Boot
- python實現郵件的傳送Python
- 實現傳送多個Ajax請求
- 傳送陣
- 使用Linux命令來傳送資訊Linux
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- Java入門:UDP協議傳送/接收資料實現JavaUDP協議
- Java入門:TCP協議傳送/接收資料實現JavaTCP協議
- Java傳送郵件初窺Java
- Java郵件傳送帶附件Java
- java httpclient傳送中文亂碼JavaHTTPclient