微信模板消息

news/2025/2/28 19:52:05/文章来源:https://www.cnblogs.com/xianz666/p/18606752

1、注册登陆微信公众平台公众号

2、申请测试账号

 

 

 

 

 

 

 

3、关注微信公众号、添加测试模板

 发消息实现代码

package org.example.weixin;import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;import java.util.HashMap;
import java.util.Map;/*** @author pei*/
public class TestGongZongHao {//https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRETprivate static String URLADDRESS = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";private static String APPID = "自己的appid";private static  String SECRET = "自己的SECRET";public static void main(String[] args) {String result =  requestGet();JSONObject obj = JSONUtil.parseObj(result);requestPost(null,obj.get("access_token").toString());}private static String requestGet(){String url = URLADDRESS+"&appid="+APPID+"&secret="+SECRET;// 发送GET请求String result = HttpUtil.get(url);System.out.println("GET请求返回结果:" + result);return result;}private static String requestPost(Map<String,Object> dataMap,String accessToken){String openId = "自己的openid";String templateId = "自己的模板id";String messageUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken;if(ObjectUtil.isEmpty(dataMap)){dataMap = new HashMap<>();}dataMap.put("touser",openId);dataMap.put("template_id",templateId);dataMap.put("client_msg_id","MSG_000001");Map<String,Object> data = new HashMap<>();Map<String,Object> keyword1 = new HashMap<>();keyword1.put("value","巧克力");Map<String,Object> keyword2 = new HashMap<>();keyword2.put("value","39.8元");Map<String,Object> keyword3 = new HashMap<>();keyword3.put("value","2014年9月22日");data.put("keyword1",keyword1);data.put("keyword2",keyword2);data.put("keyword3",keyword3);dataMap.put("data",data);// 发送JSON格式的POST请求String jsonPostResult = HttpUtil.post(messageUrl, JSONUtil.toJsonStr(dataMap));System.out.println("JSON POST请求返回结果:" + jsonPostResult);return jsonPostResult;}}

  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852521.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GraphRAG:基于知识图谱的RAG,好用,贼贵!

转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/7d21f69b.html你好,我是测试蔡坨坨。 在往期文章中,我们探讨了RAG的应用。然而,在实际使用过程中,我们发现传统RAG的表现并未完全满足预期(例如:在处理数据时,使用默认效果不佳,切片乱七八糟。因此需要花…

2024-2025-1 学号20241315《计算机基础与程序设计》第十二周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12这个作业的目标 <写上具体方面>《C语言程序设计》第11章并完成云班课测试作业正文 https://www.cnblo…

2024-2025-1 20241318 《计算机基础与程序设计》第十二周学习总结

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12这个作业的目标 <自学教材《C语言程序设计》第11章并完成云班课测试>| |作业正文|https://i.cnblogs.com/posts/e…

集合的数据筛选

1.集合的数据筛选 1.创建集合,并封装数据2.许愿有一个方法,可以判断年龄,然后alt+回车创建该方法(忽略这里未封装数据)3.在方法中,创建新的集合,存储年龄小于18的对象4.遍历list集合,每一个元素都有可能小于18,再使用if判断,将满足条件的元素存入newlist集合5.在主方法…

转载:【AI系统】动手实现自动微分

在这章内容,会介绍是怎么实现自动微分的,因为代码量非常小,也许你也可以写一个玩玩。前面的文章当中,已经把自动微分的原理深入浅出的讲了一下,也引用了非常多的论文。有兴趣的可以顺着综述 A survey 这篇深扒一下。 前向自动微分原理 了解自动微分的不同实现方式非常有用…

基于.NET8+Vue3开发的权限管理个人博客系统

前言 今天大姚给大家分享一个基于.NET8+Vue3开发的权限管理&个人博客系统:Easy.Admin。 项目介绍 Easy.Admin是一个基于.NET8+Vue3+TypeScript开发的权限管理&个人博客系统,分为普通版本和SSR(服务端渲染,支持SEO),服务端渲染框架基于vite-plugin-ssr实现,并且支…

spring-boot-devtools 实现热部署

1.devtoolsspring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。 2.项目搭建本文是采用IDEA搭建的Spring Boot应用,通过spring-boot-devtools配置,可以支持修改java文件会自动重启程…

IDEA bean json互转换插件

插件安装步骤:File->Settings->Plugins—>查找所需插件—>Install 或 File->Settings->Plugins—>Install plug from disk —>选择下载好的插件安装 一般插件安装后重启idea即可生效。 一、Java bean 转换 json 的插件 java-bean-to-json 下面详细安装…

转载:【AI系统】计算图的调度与执行

在前面的内容介绍过,深度学习的训练过程主要分为以下三个部分:1)前向计算、2)计算损失、3)更新权重参数。在训练神经网络时,前向传播和反向传播相互依赖。对于前向传播,沿着依赖的方向遍历计算图并计算其路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图…

转载:【AI系统】微分实现方式

上一篇文章简单了解计算机中常用几种微分方式。本文将深入介绍 AI 框架离不开的核心功能:自动微分。 而自动微分则是分为前向微分和后向微分两种实现模式,不同的实现模式有不同的机制和计算逻辑,而无论哪种模式都离不开雅克比矩阵,所以我们也会深入了解一下雅克比矩阵的原理…

React16

React16免费基础视频教程 https://www.bilibili.com/video/BV1g4411i7po P1 01_React免费视频课程介绍 https://jspang.com 2019 5年前 react16 16.8.6 https://react.dev/ P2 02_React简介和Vue的对比 P3 03_React开发环境的搭建 npm i -g create-react-app@3.0.0 create-reac…

Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

错误报在了forward里的Conv2d处。原因是函数写在forward里可能默认cpu,如果写在init构造函数里,就不需要再指定cuda。 修改为箭头指示就不再报错了。 【参考】 Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same-CSDN博客