# 浪漫微信推送 **Repository Path**: li-haoaa/romantic-wechat-push ## Basic Information - **Project Name**: 浪漫微信推送 - **Description**: 这是一个浪漫的微信推送程序 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 4 - **Created**: 2022-10-20 - **Last Updated**: 2024-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- title: 微信早安推送,保姆级教程 date: 2022-10-20 16:21:19 tags: --- # 【最新敲简单】微信早安推送 +页面总控, JAVA版本,一键部署运行——保姆级教程 ## 一、项目简介 ​ 一个浪漫的早安推送小项目,采用Java+SpringBoot框架进行开发,SpringBoot内置tomcat使项目部署运行非常方便。此项目利用微信接口测试号实现了每天早上定时推送模板消息(天气+纪念日+每日一句,也可自己更改模板进行开发)。项目还添加了一个极简的前端页面,可以实现部署到服务器后不停止项目直接更改天气地址和直接点击立即发送。网上的使用Java开发此项目的非常少,[也非常感谢这篇文章让我少绕了很多弯路](https://blog.csdn.net/qq15347747/article/details/126521774?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166627722516782428689277%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166627722516782428689277&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-3-126521774-null-null.142^v59^js_top,201^v3^add_ask&utm_term=%E5%BE%AE%E4%BF%A1%E6%8E%A8%E9%80%81&spm=1018.2226.3001.4187),其实这个博主写的已经非常详细了,我的消息模板也是搬过来的这位博主的,此文就来丰富一下Java版本的选择吧。先来看几张结果: ![Alt](https://img-blog.csdnimg.cn/98929bdbf4cb42769a930cd0df26486c.png#pic_center#pic_center =300x400)![在这里插入图片描述](https://img-blog.csdnimg.cn/355d14396f4841ae8c114ce7e70af05b.png#pic_center) ## 二、本地克隆项目 ​ 项目仓库在Gitee::link:https://gitee.com/li-haoaa/romantic-wechat-push,这里提供几种克隆方式: 1、直接打开链接,点击下载zip即可,然后解压缩,在idea或者eclipse里面打开项目就好了。 2、利用idea内嵌的组件,依次点击上方VCS、Get From Version Control,在弹框中粘贴上去上方的网址即可。不同版本idea基本一致。eclipse也有此功能,可直接网上搜。这里还是建议大家采用IDEA,在maven上有很大优势。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bb47716806164a30b9f05b5e100ad8f2.png#pic_center =160x200) 3、打开\wechatPushing\src\main\resources\application.yml,配置文件如下图:我们接下来要填充下划线部分,记得把纪念日改了。 ![alt](https://img-blog.csdnimg.cn/da9c32fcfaec44068c7a7d0c4731e6e6.png#pic_center ) ## 三、申请各种接口 ​ 简单介绍一下工作原理,你可以把刚才加载的项目理解为小的后台服务器,我们设定了机制,在每天设定的时间它会自动调用方法去第三方网站获取当日的天气和每日一句名言,没错,就是通过api调用。然后将请求过来的数据进行各种处理,转化成一个微信接口能听懂的语言发送过去,微信再进行模板处理把消息推送出去,我们这一步要做的就是申请这些第三方网站的api和微信接口api。 ### 1、微信接口申请 * 打开[微信公众平台](http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index),扫码登录按照要求完成认证。之后得到这一步: ![在这里插入图片描述](https://img-blog.csdnimg.cn/774f296baf0a42bab142c6e73c5df72a.png#pic_center) appID和appsecret就是我们需要的填到上方提到的配置文件中。你可以简单理解为接口的账号和密码。 * 然后你和要推送的对象(lover)扫码关注,下图中的微信号填到配置文件的receiver中,注意前面的-不要去掉,直接粘贴到双引号中即可。如果有第二个,就把下方的#删除直接粘贴即可。(如果你学过springboot就知道原因) * ![在这里插入图片描述](https://img-blog.csdnimg.cn/7ca787eae60149e58ae94495ae1fe3f9.png#pic_center) * 最后需要给你的微信添加消息模板,这里的模板是用的别人的,有想法的也可以自己修改。直接点击新增测试模板,把下面的复制进去,将生日名字改了就OK,这里面双括号包含的{{XXXX}}就是根据服务器发来的请求进行动态填充的部分,其他部分是静态不变的。你了解后可以充分想象自定义模板。然后把模板ID填到上面配置文件中的templateId中就好。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/31a2b2add1db4866b337c49ed7f631af.png#pic_center) ```xml {{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}} 距离XX生日:{{birthDate1.DATA}} 距离XX生日:{{birthDate2.DATA}} {{note_En.DATA}} {{note_Zh.DATA}} ``` ### 2、天气API接口申请 ​ [点击这里跳转去申请](https://yikeapi.com/account/index),注册成功后会出现 ![在这里插入图片描述](https://img-blog.csdnimg.cn/222ee4875f35462c981565087209d83b.png#pic_center) 把配置文件中的Weather模块appid和appsecret补充上去,把city进行修改,虽然提供了前端页面修改城市,但还是建议大家通过这里修改,因为api原因前端页面修改的有时会出现一些bug,我后期会考虑使用百度的天气api接口替换可以改善这个问题。 ### 3、名言API接口申请 [点击这里跳转注册登录](https://www.apispace.com/eolink/api/myjj/apiDocument?apiStatus=PUBLISH®ister=1),然后点击购买套餐,有一个免费的套餐,新用户也有一个1000次的可以免费购买。之后点击右上角头像,进入这个页面 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6f26e2c960634915bf4a192330f97573.png#pic_center) 复制下来Token,粘贴到配置文件中的名言警句token处,这个网站还提供了历史上的今天等很多实用的api,想要自己改消息模板的都可以使用。 ## 四、项目测试 如果你本地jdk环境没有问题,idea也没有问题,那么你的项目现在就可以运行了,打开项目中的WechatPushingApplication,点击运行即可。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e54707e2d90b4f849ad1c26e34622c34.png#pic_center) 然后打开浏览器,输入“http://localhost:60001/”,只有你的项目运行起来这个界面才能访问进去。点击立即发送即可进行测试。如果你的微信能正常收到推送消息就说明没有问题了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c6896d48bf4049e39055853cf9b55076.png#pic_center) 但是目前你只能手动点击发送,或者让项目在你的电脑上不停运行,每天定时自动推送,定时时间在MessageController中进行修改,下图是项目默认的每天7:30推送。三个数字分别是秒分时,其他的较为复杂的规则大家可以搜索@Scheduled用法。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ac1c4fd27d754b19b5b9d2e49f82001e.png#pic_center) ## 五、云上部署运行 虽然已经成功,但是目前为止你必须手动点击发送或者让项目不停的在你的电脑上运行实现定时发送,这显然和你预期的“自动定时发送”不一致,要想实现自动定时发送需要我们将项目部署到云服务器上。 ### 1、初始服务器 [腾讯云特惠链接](https://url.cn/646RdtyS),趁着活动可以购买或者体验云服务器,建议选择轻量应用服务器,方便高效还便宜。镜像就选择宝塔Linux就好,宝塔面板自动搭建好非常的方便。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/87fcd8b3376e459fbdf1b9d0248dfe2f.png#pic_center =300x300) 等待几分钟初始化完成进入轻量应用服务器控制台点击你自己的实例就会到这个界面: ![在这里插入图片描述](https://img-blog.csdnimg.cn/770650babc6b44c88594238d47568afc.png#pic_center) ### 2、进入宝塔面板管理服务器 点击登录之后会一键登录到你的远程机,输入命令sudo /etc/init.d/bt default会获取到你的面板账号和密码 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6b9c37643ca1419f8b52623f46bc03ee.png#pic_center) 打开得到的外网面板地址,用账号和密码登录就进入了宝塔面板管理页面,第一次登录需要安装一些软件环境,根据指导安装即可。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5fabfc56a6ff48a4a0d1b95512ed5399.png#pic_center) 然后进入软件商店,安装Java项目一键部署 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0cd1461ac5ef4595ad57ea301526be72.png#pic_center) 然后从首页进入一键部署: ![在这里插入图片描述](https://img-blog.csdnimg.cn/cb476e93c02f490cac6a0170760c7473.png#pic_center) 进去先安装tomcat8,虽然我们的springboot的jar包已经包含tomcat,我们在这里安装tomcat的目的是他会帮我们自动安装jdk8。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/cbad5b823c0048c1bf371fd80394b59c.png#pic_center) ### 3、上传项目并部署 打开idea,右侧maven栏,选择clean和package然后点击上方运行进行打包。之后target中就会出现jar包,右键open in explore在文件夹中打开 ![在这里插入图片描述](https://img-blog.csdnimg.cn/96e4552130e34b4486ee57a7186b0a68.png#pic =250x200)![在这里插入图片描述](https://img-blog.csdnimg.cn/d33fd2380f524d56a331b5806c7b5778.png#pic =250x200) 然后打开宝塔面板的文件,找到/www/wwwroot目录,将刚刚打好的jar包上传。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/dde5324cb1724f6ca5a3076e77da5f2e.png#pic_center) 进入java一键部署页面,选择springboot,添加项目,选择好jdk,记住分配的端口号。(这里有时经常部署不上去,策略一:多试几次,策略二:复制执行命令,自己粘贴到服务器终端执行) ![在这里插入图片描述](https://img-blog.csdnimg.cn/bdd86a32baed4bd7a2f8ef96b7cff7ba.png#pic_center =500x400) 最后,进入腾讯云控制台,打开防火墙,将刚刚的端口添加进去即可,大功告成了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8991ff31f3074537be47646f0c572768.png#pic_center) 这样就完成了自动推送,如果你想更改天气地址或者立即推送消息,进入:http://公网ip:端口号/,公网ip就是腾讯云控制台顶端的ip地址,端口号是上一步的端口号。这样你可以进入熟悉的页面。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fd5ceffa41154087b34c66f58d1bcaf9.png#pic_center) ![在这里插入图片描述](https://img-blog.csdnimg.cn/040eb2534ba741c19ec4eec17f357c9c.png#pic_center) ## 六、项目完善 如果你有经验,完全可以丰富这个项目,比如说使用数据库系统,把每次推送记录进去,然后在前端页面做出推送记录模块。也可以自定义修改api,接入一些新的功能……