# notice-open
**Repository Path**: marcomc/notice-open
## Basic Information
- **Project Name**: notice-open
- **Description**: 微信公众号、企业微信消息推送
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-09-30
- **Last Updated**: 2022-10-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 项目介绍
> 简介
封装了部分微信公众号、企业微信推送API,内含和风天气、天行数据第三方API部分服务封装。
使用Sa-Token保证安全性
主要用来哄女友,但不仅限于此,因为封装了api,可以二次开发
注意:默认使用企业微信!!!!
> 功能
* 每日消息推送
* 天气预警推送
> 效果预览
* 每日消息推送
* 天气预警推送
# 架构
> 技术
SpringBoot + Redis + Sa-Token
> 目录说明

# 使用教程
## 代码下载
小白不会git就直接下载压缩包

## 配置
### 说明
配置文件在resources/application-dev.yml
### 基本配置
> 基本数据
```yml
config:
love:
# 生日 yyyy-MM-dd 例如2001-01-18
girlBirthday: 女生生日
boyBirthday: 男生生日
# 恋爱纪念日 格式同上
day: 纪念日
auth:
username: 用户名
password: 密码
default:
# 默认推送方式,默认企业微信 work 企业微信 mp 微信公众号
push: work
```
默认使用企业微信进行推送!!!!
用户名密码自己随便写,用来获取token。不要太简单!
> Redis
天气预警需要用此来缓存数据,判断是否已经获取过。如果不需要天气预警,不需要配置Redis。
代码在`DailyScheduled`,默认注释掉了
```yml
redis:
host: localhost,IP默认本地
database: 0
port: 6379
password: 密码,没有就不填
# 连接超时时间(记得添加单位)
timeout: 10000ms
lettuce:
pool:
max-active: 8 #最大连接数据库连接数(设0或负值没有限制)默认8
max-wait: -1ms #最大建立连接等待时间(使用负值表示没有限制)。如果超过此时间将接到异常,默认-1
max-idle: 8 #连接池中的最大空闲连接(设 0 为没有限制) 默认8
min-idle: 0 #连接池中的最小空闲连接(设 0 为没有限制) 默认0
shutdown-timeout: 100ms
```
需要配置host、password
### 微信公众号(测试账号)
> 注意
这里使用的测试账号,因为个人无法使用公众号进行推送
> 申请
申请地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
> 配置

模板,可以自己改(只要别动参数名称)
```
📅 {{date.DATA}}
城市: {{city.DATA}}
天气: {{weather.DATA}}
最低气温: {{tempMin.DATA}}
最高气温: {{tempMax.DATA}}
穿衣指数: {{dress.DATA}}
防晒指数: {{sunscreen.DATA}}
今天是我们恋爱的第 {{loveDay.DATA}} ❤️
{{girlBirthday.DATA}}
{{boyBirthday.DATA}}
🌈: {{rainbowFart.DATA}}
```
### 企业微信 推荐
> 说明
个人推荐使用企业微信进行推送
主要是在微信界面中查看比较方便
> 申请
[企业微信 (qq.com)](https://work.weixin.qq.com/)
注册申请即可
> 配置

### 天行数据
> 申请
[天行数据TianAPI - 开发者API数据平台](https://www.tianapi.com/)
注册完成后


> 配置

### 和风天气
> 申请
[和风天气开发平台 ~ 高效强大的天气API,天气SDK和天气插件 (qweather.com)](https://dev.qweather.com/)
注册->应用管理->创建应用
选择免费版,Web API,然后填入key的名称即可
> 配置

locationId查看地址:[LocationList/China-City-List-latest.csv at master · qwd/LocationList · GitHub](https://github.com/qwd/LocationList/blob/master/China-City-List-latest.csv)
注意:直接ctrl + f 搜索城市名即可
或者
手动获取,接口文档:https://console-docs.apipost.cn/preview/b4ec3f7b05abc5d9/373db710a8bef70f
### 定时任务
> 位置
定时任务在`scheduled`包下
> 配置
`@Scheduled(cron = "0 0 9 * * ?")`替换掉cron表达式即可
参考网站:[Cron - 在线Cron表达式生成器 (ciding.cc)](http://cron.ciding.cc/)
直接根据上面的网站生成即可
## 获取token (小白不用看)
> 说明
这里用来调试项目,获取token。不需要调试或二次开发,不用再看了
> 方法
方法:AuthController#login
数据:存放在返回体的data中
# 参考视频
刚写完说明文档就在b站看到了和我用差不多api的视频,还带有部署视频(好卷啊~)不过我是用的Java,他用的Python
小白可以参考一下:https://www.bilibili.com/video/BV1dW4y1b7bN