草庐IT

微信公众号推送天气教程,自动定时推送【Java版】开发者和小白详细教程

阿果子 2023-04-09 原文

GitHub源码链接放这里

建议先打开,因为GitHub在国内加载很慢。
点击打开

Java版本,教程最近一次更新时间为:

2022-11-08

目录:

1.通用准备

2.面向开发者

3.面向小bai

4.联系作者

5.常见问题

通用准备

通用准备,不管是什么小bai还是开发者,都是必须经过的一步!

1.1 申请微信公众号

鼠标链接然后右键,选择在“新标签打开”,这样就不会把当前页跳转走。

点击跳转申请

  • 得到这个页面:

  • 滑到下面看到这图,使用手机,扫码关注公众号

  • 新增模板

    中文文字的可以随意更改,{{xxx.DATA}}不能改,但可以移动位置。

    另外说说原理:{{xx.DATA}}是一个占位置的符号,内容不是固定的,需要服务器提供数据来进行填充数据。

    注意:模板的中午最好只使用字符图形,如♥、△等,不要使用表情如😊🤣😚🤗的表情,否则会出现颜色显示错误!

    {{first.DATA}}
    
    城市:{{city.DATA}}
    
    实况天气:{{weather.DATA}}
    气温:{{minTemperature.DATA}} ~ {{maxTemperature.DATA}}
    风速:{{wind.DATA}}
    湿度:{{wet.DATA}}
    今天~后天:{{day1_wea.DATA}},{{day2_wea.DATA}},{{day3_wea.DATA}}
    
    ♥在一起♥: {{togetherDate.DATA}}
    
    距离kk生日:{{birthDate1.DATA}}
    距离gg生日:{{birthDate2.DATA}}
    
    {{note_En.DATA}}
    
    {{note_Zh.DATA}}
    

1.2 申请天气接口

点击注册并申请

  • 完成注册登录后得到下面这个页面

1.3 名言名句申请

点击注册,可有可无,不申请推送效果如下(左边申请的,右边不申请)。

  • 购买接口,用新人券,券自动送的,【直接白嫖1k次】~

  • 找到Token

面向开发者

作为开发者,肯定有属于自己一款的代码编辑器把,没有的话可以下载,这里使用的是IDEA代码编辑器。

IDEA安装与PJ教程在这里,点击打开

2.1 克隆项目

  • 打开Idea

  • 克隆我的GitHub项目。

    找到idea的左上角new一个项目。

    地址:https://github.com/qq1534774766/wx-push.git

    Directory你随意,只是项目存放地址。

  • 注意:GitHub是国外的地址,所以可能会出现克隆失败的情况出现,失败了就重新克隆即可。

    另外,这里提供github加速器,可以提高克隆的成功率,点击打开下载

2.2 配置文件

  • 看以下图片配置即可

    • ApiSpace: token: 是名言名句,没有申请的话,略过即可。

    • 配置文件写完之后,强烈建议把所有的中午注释通通删除掉!

    • 注意:city,不可能添加省市区字符,如广东省广州市海珠区,只能写成海珠

2.3 运行应用

  1. 找到WxPushApplication,运行main方法即可。

    如提示图示,表示运行成功:

  2. 打开浏览器访问:http://localhost:8081/send 即可收到公众号的推送信息

  3. 修改城市:打开:http://localhost:8081/ 即可打开网页,输入新城市点击提交即可。

2.3.1 启动失败原因汇总

  1. 这种错误,就是配置文件的格式错误!!配置文件在 2.2.

    配置文件格式要求:

    • 每一个冒号之后一定要有一个空格

    • 双引号要成对

  2. 翻译过来就是,端口8081已经被占用了。

    解决办法选其一即可:

    • 找到占用8081的应用,把他关掉,不会找/找不到下一个。
    • 重启电脑/服务器
    • 修改配置文件,找到2.2,把port: 8081改为8082什么的都行。
  3. 这是因为maven导包失败

    办法:

    • 刷新maven

    • 可能你没有按照我的方法来克隆项目,把项目从磁盘中彻底删除,重新克隆。看到2.1。

2.4 高级篇

2.4.1 本地自动推送

  • 那就是让自己运行项目的电脑不关机即可,**不能关机!**虚拟机也不能关,别问关机后能不能推送,闹钟没装电池到点了能响起来吗?

  • 默认是每天早上7:30推送,可以自己修改。

    • 修改的地方如图所示,这个时间是运行该应用的电脑时间!
    • 如果在国外的电脑运行本项目,是以国外运行本项目的电脑时间为准

2.4.2 云服务器自动推送

  • 如果你有云服务器,就能实现24h自动推送啦

2.4.2.1 云服务环境搭建

  1. 购买服务器,这个渠道很多的,阿里云、腾讯云、百度云,都有,这个种类很多,买最便宜的就行,新用户一般99/年。

  2. 服务器配置的话,centos7都行,其他磁盘,网络随便。

  3. 找到服务器的公网IP。

  4. 使用远程链接工具,我这里使用的是mobaxterm,

    下载链接:https://download.mobatek.net/2212022060563542/MobaXterm_Installer_v22.1.zip

    下载完解压后安装即可。(安装可能会遇到提示3503等错误无法安装,那是因为安装程序的权限不够,选中安装包选择以管理员身份运行即可。)

  5. 连接服务器,

  6. 看到右边黑黑的窗口就是服务器的控制台了。

  7. 输入命令 java -version 并回车

    看到这些信息表示jdk环境正常。

    但是如果显示的openjdk,务必卸载!!重新安装OracleJDK。

    Linux卸载自带的openJdk,并且安装JDK1.8_codesWang的博客-CSDN博客

2.4.2.2 运行

  • 简单讲解下,

    • 打包

    • 部署


    • 上传

      这里我使用的是MobaXterm终端管理软件。

      下载链接:https://download.mobatek.net/2212022060563542/MobaXterm_Installer_v22.1.zip

      下载完解压后安装即可。(安装可能会遇到提示3503等错误无法安装,那是因为安装程序的权限不够,选中安装包选择以管理员身份运行即可。)

      上次步骤如图:

      然后运行指令:

      nohup java -jar wx.jar >wx.txt &
      

      这里输入命令一路回车即可,没有什么特别的提示。

      就是一路回车,没有反馈信息的,别老过来问,回车就行了吗?

      然后这个终端就能断了。

    • 放行端口

      因为默认是8081的端口(如果你修改了配置文件的端口,那就改为你配置文件的端口),务必要开放服务器的防火墙!!!!

      下面是阿里云的示例

    测试:1.0.0.0是你的服务器ip地址

    **作废:**因为公共路径wx并没用配置,所以会导致404

    http://1.0.0.0:8081/wx/send 推送

    http://1.0.0.0:8081/wx 修改天气城市

    正常:

    http://公网IP:8081/send 推送

    http://公网IP:8081/ 修改天气城市

    (如果你修改了配置文件的端口,那就改为你配置文件的端口)

2.5 2022年9月01日问题修复

  • 如果会用git的话,可以直接拉取最新代码即可。

  • 如果不会用git,则建议重新克隆项目[2.1 克隆项目](##2.1 克隆项目),application.yaml文件记得备份一份到桌面,以免被覆盖掉。

注意:新的application.yaml,新增了一个属性

如果你想要名言名句,务必设置为TRUE

以下是问题修复日志,给喜欢探究问题原因的伙伴食用。

2.5.1 天气修复

  1. 从天气api获取到,未来的天气的日期是 01 02 03 的两位数的形式。
  2. Java中的LocalDate类提供的日期,是一位数的 1 2 3 的形式
  3. 因为一开始用是String字符串类型比较,所以01≠1,最后导致天气无法获取。

2.5.2 名言警句修复

  • 获取的句子不正常
    • 因为博主为了测试功能,使用的是免费的接口。
    • 使用免费公开的api https://api.xygeng.cn/one ,其句子收集自各个平台,所以会出现贬义的意思。

所以,现在已经修改为收费的apispace。这个你已经申请过了,就是[上面【1.3 名言名句申请】](##1.3 名言名句申请)

2.5.3 名言警句可以手动开启

  • application.yaml文件中

    enableDaily属性,可以配置是否开启每日一句。

    注意:公众号的模板无需做出任何改变

面向小bai

两种小bai:1.外行小bai。2.非Java出身的IT小bai

外行小bai这部分只看:3.1~3.4就好。

非Java出身的IT小bai:全可看

3.1 安装Java环境

Java环境就是运行这个应用的基本要求,电脑必须要安装和配置才能正确的运行Java程序。

  • 安装Java的教程网上特别多,这里推荐一篇博客,Java安装包我已提供,点击打开CSDN安装Java教程

  • Java安装包、wx.jar下载,提供阿里云:

    「微信推送-小bai版」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 链接:https://www.aliyundrive.com/s/JFcZ2F7Lj5c

3.2 配置wx.jar

  1. 右键选择文件,使用解压软件打开,不用解压

  2. 找到配置文件,wx.jar/BOOT-INF/classes,下的application.yml文件

  3. 双击,使用文本编辑器 (记事本)打开

  4. 看以下图片配置即可

    • ApiSpace: token: 是名言名句,没有申请的话,略过即可。

  5. 保存文件,并更新。

    选择确定

  6. 配置自动推送的时间

    默认是7.30,没有代码编辑器无法修改,可以联系作者修改,有空就改

3.3 运行wx.jar

这样就成功启动了~

3.4 使用

  1. 打开浏览器访问:http://localhost:8081/send 即可收到公众号的推送信息

  2. 修改城市:打开:http://localhost:8081/ 即可打开网页,输入新城市点击提交即可。

3.5 服务器自动推送

先参考2.4.2

  • 上传到Linux云服务器

  • 启动

更多

4.1 关于模板定制

模板可以直接改布局的,中文随意改变,但是 {{xxx}}内容不能改,可以移动位置。

你可以在模板随意追加想要的句子,但要注意公众号的推送是有篇幅限制的,不宜太长。

注意:更新模板后,同时需要在application.yml文件更新模板ID.

4.2 关于自动推送

  • 自己的电脑不关机,充当服务器,默认每天早上7.30自动推送,可以修改时间的,看 2.4.1本地自动推送。
  • 云服务,这个需要购买服务器才行,建议有Linux基础的人动起手来。

4.3 使用自己公众号/修改名称

名称无法修改,但可以使用自己的公众号,作者没用过。

但是找到1.1的管理页面,找到其id和secretid替换就行。

4.4 其他问题见qq群公众号

联系作者

作者忙碌,去qq群提问吧

常见问题

提问问题前,看看这里。

  1. 项目无法启动,启动报错
    • 检查电脑java环境安装是否成功?win+r 输入cmd 回车,输入命令 java -version ,有显示版本信息才表示正常。
    • 其余都是idea问题,强烈建议在idea通过new project的方式,然后输入GitHub上的项目地址链接进行克隆。
  2. 找不到配置文件?
    • 教程中的图片是有目录信息的,src/main/recourse/application.yml中
    • 找不到WxpushApplication.java,也是仔细看教程的图,是有路径信息的。
  3. 获取token失败?
    • 如果你只动了配置文件,没有改代码,100%是你appid和secretid配置错了,刷新页面重新复制粘贴,不要觉得自己没错,自己检查每一个字母再来质疑。

有关微信公众号推送天气教程,自动定时推送【Java版】开发者和小白详细教程的更多相关文章

  1. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  2. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  3. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  4. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  5. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  6. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  7. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  8. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  9. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  10. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

随机推荐