# 基于微信公众号(测试号)的信息推送 **Repository Path**: KratosMax/WeChatSendMsg ## Basic Information - **Project Name**: 基于微信公众号(测试号)的信息推送 - **Description**: 一个类似于Server酱的模板信息推送程序,默认基于微信公众号的测试号,若有认证号也可以直接上认证号。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-08-28 - **Last Updated**: 2023-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于微信公众号(测试号)的信息推送 [Gitee链接:https://gitee.com/KratosMax/WeChatSendMsg](https://gitee.com/KratosMax/WeChatSendMsg) ## 起因 在我需要做一些通知的时候,我以往用的是微信bot、QQbot,但是由于各种原因,这类bot被禁用了, 所以我被迫找一个相似的方式,出于方便,我选择了[Server酱](http://sc.ftqq.com),但是Server酱的标题展示无法自定义, 而且呈灰色,难以直观查看,所以一直想找个比较好看且自定义程度高的方式,所以有了以下的需求: 1. 能自定义标题 2. 能不受到API限制 3. 能直观简单的展示 4. 可以用web api的方式调用 所以我有了自建Server酱的想法,但有个很根本的问题,Server是认证服务号,可以直接发送模板消息给我们, 但我们自己的公众号并不是,所以无法主动推送消息 直到有一天,Server酱推送了一篇文章,表示出了[Server酱测试号版](https://sct.ftqq.com),当我打开一看, 发现是用用户的微信去申请了一个私人的[微信公众号测试号](https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index),发现测试号可以用模板消息,所以有了这个想法。 ## 测试号 [微信公众号测试号](https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index)几乎有所有的权限,唯一的缺陷是,它是公众号,会被微信折叠进去,而且公众号名称无法自定义 ### 1. 申请测试号 [官方链接](https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index) ### 2. 创建模板 在 模板消息接口——新增测试模板里,随便起个名字,模板建议使用: ``` {{title.DATA}} {{msg1.DATA}} {{msg2.DATA}} {{msg3.DATA}} {{msg4.DATA}} {{msg5.DATA}} ``` ### 3. 记录所需信息 1. appID 2. appsecret 3. 模板ID ## 部署 ``` git clone git@gitee.com:KratosMax/WeChatSendMsg.git 或 git clone https://gitee.com/KratosMax/WeChatSendMsg.git cd WebApi pip3 install -r dev-list.txt ``` 需要修改的配置有: 1. WebApi/Config/user.conf 2. WebApi/WebApi/settings.py 中的 ALLOWED_HOSTS = [] ## 启动 ``` python manage.py runserver 0.0.0.0:80 ``` ## 调用API 假定域名:wx.kratos ### 发送数据:Send 链接:http://wx.kratos/send 方式:POST 数据格式:json 数据范例: ``` { "title_data": { "title": { "value": "test", "color": "#173177" }, "msg1": { "value": "时长:0", "color": "#000000" }, "msg2": { "value": "起止:", "color": "#000000" }, "msg3": { "value": "调休:", "color": "#000000" }, "msg4": { "value": "", "color": "#000000" }, "msg5": { "value": "", "color": "#000000" } }, "type": "markdown", "msg": "## 当月周时长统计\n#### 第1周:0.00小时\n详情: 0.00 0.00 0.00 0.00 0.00 0.00 0.00\n#### 第2周:43.72小时\n详情: 0.00 8.99 8.77 8.21 9.36 8.390.00\n#### 第3周:43.17小时\n详情: 0.00 8.59 8.46 9.81 8.04 8.27 0.00\n#### 第4周:43.63小时\n详情: 0.00 8.17 8.16 10.56 8.48 8.26 0.00\n#### 第5周:41.74小时\n详情: 0.00 8.15 8.06 8.51 8.74 8.28 0.00\n#### 当月总时长:172.26小时\n" } ``` 字段: 1. title_data 里面是一个json套娃,套的是你的模板字段 2. type 有markdown和text两种,text忽略操作,相当于只发送一个标题展示页 markdown将msg部分转为html保存,并以时间戳为名字保存下来 3. msg 你的信息 ### 查看详情:logs/13位Unix时间戳 链接:http://wx.kratos/logs/13位Unix时间戳 方式:GET 数据返回:上面send的时候会将markdown以时间戳为名称生成html,通过get这个时间戳可以渲染该html