想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程只是推送一些文章的时候,没必要开发自己的服务器,步骤1和步骤4就足够了本地测试下载ngrok。在命令行中运行上面的命令,这样就能把一个外网地址映

本文为小编原创文章,首发于Java识堂,一个高原创,高收藏,有干货的微信公众号,一起成长,一起进步,欢迎关注

源码

GitHub地址:https://github.com/erlieStar/weChat

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

效果图

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

如果不需要定制化的服务,只是推送一些文章的时候,没必要开发自己的服务器,步骤1和步骤4就足够了

本地测试

下载ngrok,解决外网访问内网问题

LZ用的是Sunny-Ngrok

下载地址:https://www.ngrok.cc/

LZ下载的是Win 64Bit版本,看了作者写的使用博客搭建好了

http://www.sunnyos.com/article-show-71.html

这样我就把本地的地址映射为http://erlie.free.ngrok.cc

不过国人的真心卡啊,果断用了另一个https://ngrok.com/

教程地址:https://jingyan.baidu.com/article/f006222826c2bcfbd3f0c885.html

ngrok http 80

进入软件所在路径,在命令行中运行上面的命令,这样就能把一个外网地址映射为内网,只不过每次重新启动域名会变

创建测试账号

地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

appID和appsecret以后都会用到

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

url填写的内容是http://erlie.free.ngrok.cc/server/system,其中/server/system是接口名字,因为是Spring Boot项目,所以不用写项目名字,token随便写,主要用于验证作用。此时点提交会显示配置失败,因为你得把本地的服务启动起来,并且让微信完成校验

这个是官方写的验证说明:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

把本地的服务开启,点击提交就成功了

框架结构

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

api中有3个类,AccessTokenApi(获取token),IdAndSecretApi(保存appId和appSecret),MenuApi(菜单管理,LZ只写了创建菜单的函数。查询,删除可按照自己需求写)

bean中有1个类保存token

controller中有1个类是和微信进行交互的接口

handler中有4个类,EventTypes(事件类型),MsgTypes(消息类型),MsgHandler(消息处理器),DefaultHandler(默认的消息处理器)

msg中有3中类型的类,event包中是事件类型,in是接受消息的类型,out是发送消息的类型

ui封装了菜单类和各种按钮类

util中3个类,CheckUtil(微信校验的类),ResponseUtil(发送get和post的类),XMLUtil(将xml转为map的帮助类)

MenuManager是用ui包中的各种图形控件,组成的界面

整体思路

消息类的继承关系如图,收到的消息和发送的消息都继承一个基类,方便对消息进行统一的处理

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

收到xml文件统一转为map,在MsgHandler中根据type类型判断数据属于哪个类型,用map构造这个消息类型,即工厂模式。并且将各种消息的处理过程交给各种抽象函数,而DefaultHandler实现了对各种消息的处理

消息构造完毕往微信公众平台发送xml文件,我知道的有2种处理方式,一种是利用XStream库,将java对象转为xml类型,这种每次都得new对象,比较麻烦,我没有采用这种方法,而是重写了toString()函数,这样每次发送消息,由父类调用一下toString()函数即可,如下,但是对图文消息类型不怎么友好,LZ用图文消息比较少,所以还是用了toString()函数

想开发自己的微信公众号?看这一篇文章就够了吧_微信公众号教程

数据测试

地址如下:https://mp.weixin.qq.com/debug/,可以查看返回的各种数据是否正确

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11819.html

(0)

相关推荐

  • ms sql事务输出错误

    ms sql事务输出错误begin try 语句 end trybegin catch –ERROR_NUMBER() 返回错误号。 –ERROR_SEVERITY() 返回严重性。 –ERROR_

    2022-12-16
    141
  • 故障分析 | MySQL:5.6 大事务 show engine innodb status 故障一例

    故障分析 | MySQL:5.6 大事务 show engine innodb status 故障一例作者:高鹏(网名八怪) 文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。 本文来源:转载自公众号-老叶茶馆, (作者简书:ht…

    2023-02-08
    170
  • hadoop格式化namenode报错_no lease on hdfs文件不存在

    hadoop格式化namenode报错_no lease on hdfs文件不存在删除hdfs ha namenode的正常方式是先禁用高可用,今天想试试直接删除其中一个namenode,于是开始操作,结果剩下的NN无法启动。 cm页面报错:“Nameservice testClu

    2023-02-02
    154
  • 如何安装virtualenv

    如何安装virtualenv在Python开发过程中,常常需要在同一台机器上同时使用多个项目,每个项目需要不同版本的Python解释器和依赖包,但不同版本之间有可能会产生冲突。这时,一个虚拟环境就派上了用场。其中,Virtualenv是Python中最常用的虚拟环境管理工具之一。

    2024-08-03
    27
  • 字节跳动陈志锋主要管_字节跳动难进吗

    字节跳动陈志锋主要管_字节跳动难进吗导读: 作为一种基础的数据结构,图数据的应用场景无处不在,如社交、风控、搜广推、生物信息学中的蛋白质分析等。如何高效地对海量的图数据进行存储、查询、计算及分析,是当前业界热门的方向。本文将介绍字节跳动

    2023-05-22
    163
  • 使用魔棒工具选择PS图层中心点

    使用魔棒工具选择PS图层中心点在设计和美术制作方面,很多时候需要在Photoshop中进行图形处理和编辑,其中涉及到图层的选择与修改。如何准确选中一个图层中心点,是每个设计师和美术师都需要掌握的技能。本文将介绍如何使用魔棒工具来选取图层中心点,并且演示相应的Python代码。

    2024-07-05
    49
  • 用Python Numbers进行数字计算和操作

    用Python Numbers进行数字计算和操作a href=”https://www.python100.com/a/sm.html”font color=”red”免责声明/font/a a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-02-13
    97
  • 安全和成本哪个更重要?_选择成本和机会成本

    安全和成本哪个更重要?_选择成本和机会成本数据库安全,是指以保护数据库系统、数据库服务器和数据库中的数据、应用、存储,以及相关网络连接为目的,防止数据库系统及其数据遭到泄露、篡改或破坏的安全技术。 数据库是企业最为核心的数据保护对象。与传统的

    2023-05-20
    155

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注