失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【微信推送】微信专属推送——改源码教程

【微信推送】微信专属推送——改源码教程

时间:2022-03-25 23:44:17

相关推荐

【微信推送】微信专属推送——改源码教程

🆔作者简介:盐焗小星球_wyb,一名电子信息大学生.

📑 个人主页:盐焗小星球_wyb的主页👀

📫 如果文章知识点有错误的地方,请指正!和大家一起学习进步

🔥 如果感觉博主的文章还不错的话,还请不吝关注、点赞、收藏

文章目录

前言一、安装PyCharm二、个性DIY—新增API接口1.申请新增API2.将对接好的api放入主程序3.运行程序三、部署到Github(有延时)1.新建仓库2.上传文件3.实现自动推送四、部署到服务器(准时)1.获取一台服务器2.去连接服务器3.安装python和requests包4.设置定时任务总结

前言

提示:这里是本文的前言:

这篇文章是基于Github这个博主,根据自己的想法改编完善的(十分详细),大家有兴趣的话可以去看一下原创:/erwanjun/weixin_tuisong

本篇博客的文件获取地址:/s/YEkPQQN4KUE

提取码:29uo

提示:以下是本篇文章正文内容

一、安装PyCharm

一、PyCharm官网地址:/pycharm/

二、Python3及PyCharm 的安装教程

三、Python-3.9.13-amd64.exe 提取码1w7k

二、个性DIY—新增API接口

1.申请新增API

点击参考代码

选择python

把这串代码复制下来,然后进行测试!

先独立开一个.PY,测试参考代码没有问题后再放进main.py!!!

这里我们用PyCharm双击打开main.py文件 ,在tuisong文件下找到一个ceshi.py,来调试这个api接口!

a、把上面这串串参考代码复制进去,然后在第6行中把你的APIKEY替换成我们在前面申请的key,如下图所示

b、由于api返回的格式为json格式,我们需要把它转换成字典格式,这里需要引用json库,在代码最前面加入 import json,并且加入一句

import json

data = json.loads(data)

将它转换成字典格式

c、然后我们提取"content",通过观察之前的输出结果,我们很容易发现,"content"被放在一个字典里面,然后这个字典又被放在了列表里面,这个列表又被作为最外层字典键"newslist"的值。所以我们通过下标方式提取:

data["newslist"][0]["content"]

如下图所示:

这次再运行Run Code,我们会发现它已经输出正常了:

我们发现它确实成功请求到了舔狗日记,只要提取到参数"content"的值就行了!

这里我把源代码贴出来,你们加入自己的KEY,可以自行测试:

# -*- coding: utf-8 -*-import http.client, urllibimport json#引入json库conn = http.client.HTTPSConnection('') #接口域名params = urllib.parse.urlencode({'key':'在这里填入你自己的KEY'})headers = {'Content-type':'application/x-www-form-urlencoded'}conn.request('POST','/dujitang/index',params,headers)res = conn.getresponse()data = res.read()print(data.decode('utf-8'))data = json.loads(data) #转换成字典print (data["newslist"][0]["content"])

将对接好的api放入主程序

2.将对接好的api放入主程序

首先我们观察主程序main.py

发现有几个主要流程

1、编写获取api的函数

2、将函数返回值赋予给自定义变量

3、将变量作为参数放进post

总体比较简单,这里直接给出我改编的函数

#舔狗日记def tiangou():if (tiangou != "替换掉我"):conn = http.client.HTTPSConnection('') # 接口域名params = urllib.parse.urlencode({'key': tiangou_API})headers = {'Content-type': 'application/x-www-form-urlencoded'}conn.request('POST', '/tiangou/index', params, headers)res = conn.getresponse()data = res.read()data = json.loads(data) # 转换成字典return (data["newslist"][0]["content"])else:return ""

a、同时要记得在main.py开头位置引入我们需要的库

import http.client, urllibimport json

如图所示:

b、定义一个tiangou()函数,把API接口引入到主函数

#舔狗日记def tiangou():if (tiangou_API != "替换掉我"):conn = http.client.HTTPSConnection('') # 接口域名params = urllib.parse.urlencode({'key':tiangou_API})headers = {'Content-type': 'application/x-www-form-urlencoded'}conn.request('POST', '/tiangou/index', params, headers)res = conn.getresponse()data = res.read()data = json.loads(data) # 转换成字典return (data["newslist"][0]["content"])else:return ""

如图所示:

c、在下面的 #推送信息 def send_message 数组里,添加tiangou变量

def send_message(..., tiangou)

如图所示:

d、然后拉到最底下在 #公众号推送消息 send_message 数组里面,添加 tiangou 变量

# 公众号推送消息for user in users:send_message(..., tiangou)

这里多了一些pipi,pop,tip,都不用管,这个是我自己加入的其他的api,你们只需要加入一个dog_diary就好啦。加多了会报错,记得直接在末尾加上就好。

在 # 公众号推送消息 上面类比添加,如下内容:

#舔狗日记tiangou = tiangou()

并在上面几行添加,如下内容:

#舔狗日记tiangou_API= config["tiangou_API"]

如图所示:

e、最后,我们找到打包post的函数

直接在最底下,或者中间,仿照上面,加入一个 “tiangou”

"tiangou":{"value": tiangou,"color": get_color()},

如图所示:

记得放在最后面的话,花括号后面不要逗号。

至此,api接入已经全部完成。

在保证消息模板中有{{tiangou.DATA}},并且config.txt文件填写无误的情况下就可以运行了!

3.运行程序

运行结果如下:

最后将Python文件打包为exe程序

pip3 install pyinstaller`

pyinstaller -F

测试好后弄到配置文件里去:

定义一个tiangou()函数

#舔狗日记def tiangou():if (tiangou_API != "替换掉我"):conn = http.client.HTTPSConnection('') # 接口域名params = urllib.parse.urlencode({'key':tiangou_API})headers = {'Content-type': 'application/x-www-form-urlencoded'}conn.request('POST', '/tiangou/index', params, headers)res = conn.getresponse()data = res.read()data = json.loads(data) # 转换成字典return (data["newslist"][0]["content"])else:return ""

main最下面的# 公众号推送消息 send_message数组里面,添加tiangou变量

# 公众号推送消息for user in users:send_message(..., tiangou)

在 # 公众号推送消息 上面类比添加,如下内容:

#舔狗日记tiangou = tiangou()

并在上面几行添加,如下内容:

#舔狗日记tiangou_API= config["tiangou_API"]

在上面 #推送信息 def send_message 数组里,添加tiangou变量

def send_message(..., tiangou)

在 #推送信息 里的 data 数组里类比添加,如下内容:

"tiangou":{"value": tiangou,"color": get_color()},

#舔狗日记APItiangou_API=config["tiangou_API"]

三、部署到Github(有延时)

1.新建仓库

2.上传文件

3.实现自动推送

替换成下面的内容:

name: weixinon:workflow_dispatch:schedule: # 代表国际标准时间4点0分,北京时间需要+8小时,代表北京时间中午12点运行- cron: '0 4 * * *'jobs:#将工作流程中运行的所有作业组合在一起build:#定义名为 build 的作业。 子键将定义作业的属性 runs-on: ubuntu-latest steps:- uses: actions/checkout@v2- name: Set up Python 3.9uses: actions/setup-python@v2with:python-version: 3.9.1- name: Set timezonerun: |cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime- name: install pip packagesrun: |python -m pip install --upgrade pippip3 install -r requirements.txt- name: weixinrun: |python3 main.py

其中倒数第三行这里的name:后面填写你创建的这个仓库的名字,我这里就填写type—haodi

点击Star commit后,点击Commit a new file就可以了

点击Code回到看到这样的界面,就完成自动推送了!

四、部署到服务器(准时)

1.获取一台服务器

白嫖三个月云服务器,用的是腾讯云服务器,地址为:/

注册和实名完成之后,进入如下界面:

点击云产品 — 云服务器

点击查看更多优惠

进入如下界面,一直往下划

找到如下界面

点击云产品 — 轻量应用服务器

出现如下界面往下滑

这里给大家说明一下,版本的系统会闪退,且运行不了程序,原因不清楚,博主搞了好久,然后这里给大家的建议是:重装系统。具体操作如下:

找到镜像,点击重装系统

选择R2版本,重装系统就好啦!

重装系统,需要几分钟,耐心等待一下就好了,可能需要重新修改一下密码!

2.去连接服务器

出现这个界面,就代表登录成功我们的服务器啦!

(当然里面是没有任何软件的,图中的是我刚下的)

3.安装python和requests包

在你的远程服务器上也需要安装python和request包还有配置系统变量,可以直接在服务器中打开浏览器安装,和在自己电脑上操作一模一样

官方网站: /getit/

由于是外国网站,比较慢博主给你准备好啦!Python-3.10.6-amd64 提取码k3x8

安装requests包操作如下:

Win+R输入cmd执行以下命令:

pip3 install requests

大家也可以,通过IDE安装,如pycharm!

检查是否安装完成,在cmd状态栏输入:

pip install requests

出现下面这样界面,就代表安装好啦!!

4.设置定时任务

你可以直接把你电脑里面的代码文件夹都复制进去(改源码的),或者直接复制下面这两个文件(有EXE文件)

因为windows定时任务不能直接执行.py文件,所以我们需要创建一个.bat文件,首先我们要在服务器上创建一个文本文件(.txt文件)(记得要放在与main.py/exe文件同一个文件夹里面),在里面输入

python main.py

然后进行重命名,我这里重命名为run.bat文件。

关于如何改 .bat 文件,参考如下:

点击文件扩展名

然后我们就可以开心的设置定时任务啦!

点击创建基本任务

设计名称微信推送

点击下一步,选择每天

点击下一步,设置时间

点击下一步,选择启动程序

点击下一步,选择程序或脚本这里填入你运行代码的run.bat文件

起始于也要填,填你放run.bat的文件夹

文件夹地址可以直接复制

这一步完成后直接点击完成!我们还需要设置启动程序权限,点击刚刚创建任务的属性

勾选不管用户是否登录都要运行和使用最高权限运行,配置选择你的服务器配置(用电脑的选用自己电脑配置)

全部完成后点击确定,然后输入VNC密码就可以啦!全部完成~

总结

最后,希望大家,一键三连,就是对博主的最大支持了!再次声明本篇博客是我对原创作者,补充!!

如果觉得《【微信推送】微信专属推送——改源码教程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。