本文来自小红书大佬七夕节的礼物原版大佬的代码,配置有些分散,我将其统一转移到了配置文件中,方便配置。打包部署遇到了些问题,这边修改了一下。也增加了docker启动,简化部署。
后面将介绍如何在不安装集成开发环境的情况下,只做一些网站注册,使用docker将程序运行起来。给心仪的人发送爱的消息。
不需要安装Java、Maven、git等工具,我们也不用IDEA打开,IDEA爆红可以忽略,我们用文本文档编辑配置文件即可。
API申请
我们需要申请一下开发API所需要的key。
百度天气API彩虹屁API微信测试账号wechat-push
这个文件路径src/main/resources/application.properties
找到配置文件,编辑修改,填入自己刚申请的key。这里大家可以用文本文档打开。
target.openId
填你们对象的微信id,访问http://localhost:9999/push
即可推送至她的手机。定时推送也用的是这个。
target.test.openId
可以填自己的微信id,访问http://localhost:9999/push/test
这个地址,会给自己的微信推送,方便我们测试配置文件以及程序的正确性。
定时发送时间
如果想修改定时时间,可以访问这个定时任务文件路径src/main/java/work/sajor/wechatpush/job/JobWorker.java
# 七点三十分触发,可以按照自己情况修改@Scheduled(cron = "0 30 7 * * " />
Docker 安装
这里我们使用docker来启动,方便快捷,还不易踩坑出错。我们可以到官网查看安装方法,我用centos做个介绍。其余大家可以照着文档来。
docker安装方法DaoCloud | Docker 极速下载http://get.daocloud.io
文档第一步要求我们先卸载已有版本。我们贴进终端即可。
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
然后设置仓库镜像地址
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
最后使用yum安装docker即可
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
启用并测试一下
sudo systemctl start dockersudo docker run hello-world
上传代码
教程已经到尾声了,如果大家是在服务器上安装的docker。还需要将下载的代码上传到服务器上。如果是在本地安装的docker,可以跳过这步,直接看启动。
可以通过scp/pscp上传代码。
scp 代码本地路径.zip 服务器用户名@服务器ip:上传到服务器路径
也可以使用xshell、finalshell、Winscp等工具上传。
云服务还能通过云厂商的网页端登陆,上传文件。
上传zip之后,解压命令是
unzip wechat-push.zip
启动
我们需要打开终端,执行命令,终端可以这么打开:
windows里可以打开cmd,也可以用Powershell。在项目目录中,按住shift键,点击鼠标右键可以直接在当前路径中打开Powershell。
MacOS/Linux里用Terminal。MacOS可以在文件夹上点击右键,选择New Terminal at Folder
。
之后我们在终端wechat-push项目的目录下,然后运行以下命令。
# 构建镜像docker build . -f Dockerfile --tag sajor:wechat-push# 查看构建好的镜像docker images
# 启动镜像docker run --name wechat-push -d -p9999:9999 sajor:wechat-push# 查看运行中容器docker ps
启动之后,访问本地http://127.0.0.1:9999/push
就可以收到推送了。
为了方便排查错误,如果没有收到任何推送,可以使用查看日志的命令,窗口不要关,访问这个地址 http://127.0.0.1:9999/push
可以看到推送的日志。
docker logs -f -t [6c85ba71d50e 这里填自己的]