Java代码 微信公众号推送(代码详细)

这篇具有很好参考价值的文章主要介绍了Java代码 微信公众号推送(代码详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用的是idea, 需要修改的地方在于这些地方改了java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 

然后吧账号密码填写进去就好了  运行类是   Yi   这个类

非常简单 祝大家成功 ,不会的关注私聊  

微信公众号测试注册地址:微信公众平台 (qq.com)

java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 我用的模板是这个只有一个数据 ,当然这个可以自己添加

java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 做出来的效果当然上面那个要添加什么只需要在这个类里面添加对应的数据值:

java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 

java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 

java微信公众号推送,其他,java,mybatis,微信公众平台,微信小程序,bug

 需要导入的jar包文章来源地址https://www.toymoban.com/news/detail-520499.html

<dependencies>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.3.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>


        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.4.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.3.6</version>
        </dependency>

        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>3.0.15.RELEASE</version>
        </dependency>

    </dependencies>
public class ABC {
    private int abc=1;
    private int abc1=1;
    private int abc2=1;

    public ABC() {
    }

    public int getAbc() {
        return abc;
    }

    public void setAbc(int abc) {
        this.abc = abc;
    }

    public int getAbc1() {
        return abc1;
    }

    public void setAbc1(int abc1) {
        this.abc1 = abc1;
    }

    public int getAbc2() {
        return abc2;
    }

    public void setAbc2(int abc2) {
        this.abc2 = abc2;
    }
}
import java.awt.*;
import java.util.Random;

public class Close {
    public static void main(String[] args) {
        for(int i=0;i<=10;i++){
            System.out.println(close());
        }
    }


    public static String close()
    {
        //红色
        String red;
        //绿色
        String green;
        //蓝色
        String blue;
        //生成随机对象
        Random random = new Random();
        //生成红色颜色代码
        red = Integer.toHexString(random.nextInt(256)).toUpperCase();
        //生成绿色颜色代码
        green = Integer.toHexString(random.nextInt(256)).toUpperCase();
        //生成蓝色颜色代码
        blue = Integer.toHexString(random.nextInt(256)).toUpperCase();

        //判断红色代码的位数
        red = red.length()==1 ? "0" + red : red ;
        //判断绿色代码的位数
        green = green.length()==1 ? "0" + green : green ;
        //判断蓝色代码的位数
        blue = blue.length()==1 ? "0" + blue : blue ;
        //生成十六进制颜色值
        String color = "#"+red+green+blue;

        System.out.println(color);

        return  color;
    }

}


import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class Main {
    public static String getHtmlByPost(String urlString,String postBody) throws IOException {
        byte[] xmlData = postBody.getBytes();
        //接收想要连接网址的地址
        URL url=new URL(urlString);
        //响应
        StringBuilder responseBuilder=new StringBuilder();
        //读取信息为文本信息,所以用bufferReader
        BufferedReader reader=null;
        //用url对象打开连接(仅仅打开了连接,并未发送请求)
        HttpURLConnection conn=(HttpURLConnection)url.openConnection();
        //设置HttpURLConnection参数
        //设置post方法
        conn.setRequestMethod("POST");
        //不使用缓存
        conn.setUseCaches(false);
        conn.setDefaultUseCaches(false);
        //post请求必须设置如下2行
        conn.setDoInput(true);
        conn.setDoOutput(true);
        //读取超时时间
        conn.setReadTimeout(5000);
        conn.setConnectTimeout(5000);
        //设置不要302自动跳转,防止重定向
        conn.setInstanceFollowRedirects(false);
        //设置传入参数的格式
        conn.setRequestProperty("Content-Type","application/json");
        //没写可能出现411错误
        conn.setRequestProperty("Content-Length",String.valueOf(xmlData.length));
        //通过连接对象获取一个输出流
        DataOutputStream printout = new DataOutputStream(conn.getOutputStream());
        //输出流发送请求参数
        printout.write(xmlData);
        //flush输出流的缓冲
        printout.flush();
        printout.close();

        //定义BufferedReader输入流来读取URL的响应

        int code=conn.getResponseCode();
        System.out.println(code);

        if(code==200) {
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
            //逐行读取数据
            String line = null;
            while ((line = reader.readLine()) != null) {
                responseBuilder.append(line + "\n");
            }
            reader.close();
        }else{
            conn.getErrorStream();
        }
        String result=responseBuilder.toString();
        return  result;
    }

}

public class WeChatTemplateMsg {
    /**
     * 消息
     */
    private String value;
    /**
     * 消息颜色
     */
    private String color;


    public WeChatTemplateMsg(String value) {
        this.value = value;
        this.color = "#173177";
    }

    public WeChatTemplateMsg(String value, String color) {
        this.value = value;
        this.color = 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;
    }
}
import com.alibaba.fastjson.JSONObject;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import org.thymeleaf.util.StringUtils;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;


public class Yi {
    String accessToken;
    public static void main(String[] args) throws Exception {


        Yi y=new Yi();
        String appid="wx122f233fcadb27ccxxxx"; //对应的id
        String secret="xxxx"; //对应秘钥 就是上面那个appid下面那个
        Connection.Response document = Jsoup.connect("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+secret+"").timeout(4000).userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.15").ignoreContentType(true).execute();
        Document parse = document.parse();
        String parse1 = String.valueOf(parse);
        String access = StringUtils.substringBefore(StringUtils.substringAfter(parse1, "access_token\":\""), "\",\"expires_in");
        y.accessToken=access; //获取
//        System.out.println(access);
        y.sendMessage();

    }

    public  void sendMessage() {
        // 模板参数
        Map<String, WeChatTemplateMsg> sendMag = new HashMap<>();

        // openId代表一个唯一微信用户,即微信消息的接收人
        String openId = "o565j6tLmAwhVMhY1UIG7ipgaNvc";
        // 公众号的模板id(也有相应的接口可以查询到)
        String templateId = "oXOvDQYxGmt4MBJWYJRPZvSDgKxP4Atip6bHKs-mOuM";
        // 微信的基础accessToken

        String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken;




        sendMag.put("d1", new WeChatTemplateMsg("哈哈哈嗯嗯","#28AEBD"));
//        sendMag.put("keyword1", new WeChatTemplateMsg("111"));


        //拼接base参数
        Map<String, Object> sendBody = new HashMap<>();
        sendBody.put("touser", openId);               // openId
        sendBody.put("url", "www.baidu.com");         // 点击模板信息跳转地址
        sendBody.put("topcolor", Close.close());          // 顶色
        sendBody.put("data", sendMag);                   // 模板参数



        sendBody.put("template_id", templateId);      // 模板Id

        JSONObject json = new JSONObject(sendBody);
//        System.out.println(url+json);




        try{
            System.out.println(Main.getHtmlByPost(url, String.valueOf(json)));
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

到了这里,关于Java代码 微信公众号推送(代码详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合调用微信模板方法实现微信公众号消息通知推送,Java实现微信公众号给关注用户推送自定义消息通知(手把手从0到1)

    目录 概述 公众号给关注用户推送自定义消息 一、申请公众号模板消息 二、获取安装“web开发者工具” 三、微信网页授权说明 四、微信网页授权 - 流程时序图 五、HTTPClient 实现微信公众号消息推送与发布(四步走) 六、通过weixin-java-mp SDK实现微信公众号消息推送与发布(七

    2024年02月10日
    浏览(45)
  • 微信小程序向公众号推送消息超详细教程

    官方教程 官方教程 开通一下服务号公众号 超级管理员登录服务号公众号后台 登录地址 开通模板消息 申请一个模板消息,获取模板ID 注意此处的参数,后续接口需要使用 绑定公众号与小程序 官方教程 1.登录微信公众号后台 2.点击小程序管理 3.关联小程序 获取微信公众号

    2024年02月11日
    浏览(63)
  • Java实现公众号功能、关注、消息推送

    实现公众号事件处理类 实现公众号日志记录处理器 实现公众号用户关注处理器 实现公众号用户取消关注处理器 实现公众号用户发送消息处理器 用户消息事件分类处理Builder 定义处理抽象类 实现处理抽象类–子类–文本消息 实现处理抽象类–子类–图片消息

    2024年02月08日
    浏览(41)
  • 微信小程序订阅消息推送(附带后台java代码)

    官方文档: 小程序前端:点击进入 小程序服务端:点击进入 一,代码实现(后端) ①定义实体类 ②定义HttpUtil类(Get请求) ③验证token过期时间 ④小程序发送消息 AuthUtil工具类

    2024年02月14日
    浏览(45)
  • 【Java项目】SpringBoot项目完成微信公众号收到用户消息自动回复功能附带视频(超详细)

    视频讲解 首先你需要先注册一个你的微信公众号 微信公众号平台 然后打开下面的自动回复功能 之后进入到你的开发者中心 开发者中心基本配置 然后生成你的开发者密码,开发者id,以及设置你的IP白名单。 这里的IP白名单中的IP必须是一个公网IP,因为微信官方会把他们的

    2024年02月13日
    浏览(51)
  • JAVA深化篇_29—— 线程使用之线程联合以及Thread类中的其他常用方法【附有详细说明及代码案例】

    线程联合 当前线程邀请调用方法的线程优先执行,在调用方法的线程执行结束之前,当前线程不能再次执行。线程A在运行期间,可以调用线程B的join()方法,让线程B和线程A联合。这样,线程A就必须等待线程B执行完毕后,才能继续执行。 join方法的使用 join()方法就是指调用该

    2024年02月05日
    浏览(48)
  • 微信公众号推送模板消息给用户

    前置条件: 1.公众号为服务号,而非订阅号 2.认证(300元) 3.进入公众号申请模板推送功能 4.添加模板(注意:推送的消息只能使用微信提供的模板,不可自定义,但也是比较全的) 4.2 获取accessToken时,需要将开发环境的电脑ip添加到微信后台的ip白名单(线上环境亦是如此

    2024年02月12日
    浏览(59)
  • 微信公众平台自定义菜单 /事件推送

    用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。 请注意,第3个到第8个的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推

    2024年02月16日
    浏览(49)
  • 微信小程序向公众号推送消息模板

    由于微信小程序长期订阅的消息模板全部失效以后,对于小程序的消息推送可以改成往公众号推。 这里将介绍如何使用小程序向公众号推送消息,并且消息可以跳转到小程序 1、微信公众平台注册 服务号 (订阅号是不可以推送的)与小程序,两者都需要认证并且 认证主体是

    2024年02月06日
    浏览(56)
  • 【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github

    前面的文章我们搭建了微信公众号开发的服务器,写了一点代码。后面肯定会对代码不断的完善和迭代,那怎样维护这些代码呢? 可以通过GitHub进行维护和版本管理。 本文主要带你从0开始构建起服务器和GitHub仓库之间的联系。 本文假设你已经略懂基本的 git 指令: git init

    2024年02月02日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包