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

作者简介:盐焗小星球_wyb,一名电子信息大学生.
个人主页:盐焗小星球_wyb的主页
如果文章知识点有错误的地方,请指正!和大家一起学习进步
如果感觉博主的文章还不错的话,还请不吝关注、点赞、收藏

文章目录

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


前言

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

本篇博客的文件获取地址:https://www.aliyundrive.com/s/YEkPQQN4KUE
提取码:29uo


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

一、安装PyCharm

一、PyCharm官网地址:https://www.jetbrains.com/pycharm/
二、Python3及PyCharm 的安装教程
三、Python-3.9.13-amd64.exe 提取码1w7k

二、个性DIY—新增API接口

1.申请新增API

点击参考代码
【微信推送】微信专属推送——改源码教程_第1张图片
选择python
【微信推送】微信专属推送——改源码教程_第2张图片
把这串代码复制下来,然后进行测试!

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

这里我们用PyCharm双击打开main.py文件 ,在tuisong文件下找到一个ceshi.py,来调试这个api接口!
【微信推送】微信专属推送——改源码教程_第3张图片
a、把上面这串串参考代码复制进去,然后在第6行中把你的APIKEY替换成我们在前面申请的key,如下图所示
【微信推送】微信专属推送——改源码教程_第4张图片
b、由于api返回的格式为json格式,我们需要把它转换成字典格式,这里需要引用json库,在代码最前面加入 import json,并且加入一句

 import json
data = json.loads(data)

将它转换成字典格式
【微信推送】微信专属推送——改源码教程_第5张图片
c、然后我们提取"content",通过观察之前的输出结果,我们很容易发现,"content"被放在一个字典里面,然后这个字典又被放在了列表里面,这个列表又被作为最外层字典键"newslist"的值。所以我们通过下标方式提取:

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

如下图所示:
【微信推送】微信专属推送——改源码教程_第6张图片

这次再运行Run Code,我们会发现它已经输出正常了:
【微信推送】微信专属推送——改源码教程_第7张图片
我们发现它确实成功请求到了舔狗日记,只要提取到参数"content"的值就行了!
这里我把源代码贴出来,你们加入自己的KEY,可以自行测试:

# -*- coding: utf-8 -*-
import http.client, urllib
import json      #引入json库
conn = http.client.HTTPSConnection('api.tianapi.com')  #接口域名
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('api.tianapi.com')  # 接口域名
        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, urllib
import json

如图所示:
【微信推送】微信专属推送——改源码教程_第8张图片

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

#舔狗日记
def tiangou():
    if (tiangou_API != "替换掉我"):
        conn = http.client.HTTPSConnection('api.tianapi.com')  # 接口域名
        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 ""

如图所示:
【微信推送】微信专属推送——改源码教程_第9张图片

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

def send_message(..., tiangou)

如图所示:
【微信推送】微信专属推送——改源码教程_第10张图片

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

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

【微信推送】微信专属推送——改源码教程_第11张图片
这里多了一些pipi,pop,tip,都不用管,这个是我自己加入的其他的api,你们只需要加入一个dog_diary就好啦。加多了会报错,记得直接在末尾加上就好。

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

#舔狗日记
    tiangou = tiangou()

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

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

如图所示:
【微信推送】微信专属推送——改源码教程_第12张图片

e、最后,我们找到打包post的函数
【微信推送】微信专属推送——改源码教程_第13张图片
直接在最底下,或者中间,仿照上面,加入一个 “tiangou”

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

如图所示:
【微信推送】微信专属推送——改源码教程_第14张图片

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

至此,api接入已经全部完成。
在保证消息模板中有{{tiangou.DATA}},并且config.txt文件填写无误的情况下就可以运行了!

3.运行程序

【微信推送】微信专属推送——改源码教程_第15张图片
运行结果如下:
【微信推送】微信专属推送——改源码教程_第16张图片
最后将Python文件打包为exe程序

pip3 install pyinstaller`
pyinstaller -F

测试好后弄到配置文件里去:
定义一个 tiangou() 函数

#舔狗日记
def tiangou():
    if (tiangou_API != "替换掉我"):
        conn = http.client.HTTPSConnection('api.tianapi.com')  # 接口域名
        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()
            },
#舔狗日记API
    tiangou_API=config["tiangou_API"]

三、部署到Github(有延时)

1.新建仓库

【微信推送】微信专属推送——改源码教程_第17张图片
【微信推送】微信专属推送——改源码教程_第18张图片【微信推送】微信专属推送——改源码教程_第19张图片

2.上传文件

【微信推送】微信专属推送——改源码教程_第20张图片
【微信推送】微信专属推送——改源码教程_第21张图片
【微信推送】微信专属推送——改源码教程_第22张图片

3.实现自动推送

【微信推送】微信专属推送——改源码教程_第23张图片
【微信推送】微信专属推送——改源码教程_第24张图片
【微信推送】微信专属推送——改源码教程_第25张图片
替换成下面的内容:

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

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

【微信推送】微信专属推送——改源码教程_第26张图片

点击 Star commit 后,点击 Commit a new file 就可以了
【微信推送】微信专属推送——改源码教程_第27张图片
点击 Code回到看到这样的界面,就完成自动推送了!
【微信推送】微信专属推送——改源码教程_第28张图片

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

1.获取一台服务器

白嫖三个月云服务器,用的是腾讯云服务器,地址为:https://cloud.tencent.com/
注册和实名完成之后,进入如下界面:
点击 云产品 — 云服务器
【微信推送】微信专属推送——改源码教程_第29张图片

点击 查看更多优惠
【微信推送】微信专属推送——改源码教程_第30张图片
进入如下界面,一直往下划

找到如下界面
【微信推送】微信专属推送——改源码教程_第31张图片
点击 云产品 — 轻量应用服务器
【微信推送】微信专属推送——改源码教程_第32张图片
出现如下界面往下滑

【微信推送】微信专属推送——改源码教程_第33张图片

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

找到 镜像,点击 重装系统

【微信推送】微信专属推送——改源码教程_第34张图片
选择2012R2版本,重装系统就好啦!
【微信推送】微信专属推送——改源码教程_第35张图片
重装系统,需要几分钟,耐心等待一下就好了,可能需要重新修改一下密码!

2.去连接服务器

【微信推送】微信专属推送——改源码教程_第36张图片
【微信推送】微信专属推送——改源码教程_第37张图片
【微信推送】微信专属推送——改源码教程_第38张图片
【微信推送】微信专属推送——改源码教程_第39张图片
【微信推送】微信专属推送——改源码教程_第40张图片
出现这个界面,就代表登录成功我们的服务器啦!
(当然里面是没有任何软件的,图中的是我刚下的)
【微信推送】微信专属推送——改源码教程_第41张图片

3.安装python和requests包

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

官方网站: https://www.python.org/getit/
由于是外国网站,比较慢博主给你准备好啦!Python-3.10.6-amd64 提取码k3x8

【微信推送】微信专属推送——改源码教程_第42张图片
安装requests包操作如下:
Win+R 输入 cmd执行以下命令:

pip3 install requests

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

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

pip install requests

出现下面这样界面,就代表安装好啦!!
【微信推送】微信专属推送——改源码教程_第43张图片

4.设置定时任务

你可以直接把你电脑里面的代码文件夹都复制进去(改源码的),或者直接复制下面这两个文件(有EXE文件)
【微信推送】微信专属推送——改源码教程_第44张图片
因为windows定时任务不能直接执行.py文件,所以我们需要创建一个.bat文件,首先我们要在服务器上创建一个文本文件(.txt文件)(记得要放在与main.py/exe文件同一个文件夹里面),在里面输入

python main.py

然后进行重命名,我这里重命名为run.bat文件。
关于如何改 .bat 文件,参考如下:
【微信推送】微信专属推送——改源码教程_第45张图片
点击文件扩展名
【微信推送】微信专属推送——改源码教程_第46张图片
然后我们就可以开心的设置定时任务啦!
【微信推送】微信专属推送——改源码教程_第47张图片
点击 创建基本任务
【微信推送】微信专属推送——改源码教程_第48张图片
设计名称 微信推送
【微信推送】微信专属推送——改源码教程_第49张图片
点击 下一步,选择 每天
【微信推送】微信专属推送——改源码教程_第50张图片
点击 下一步,设置 时间
【微信推送】微信专属推送——改源码教程_第51张图片
点击 下一步,选择 启动程序

【微信推送】微信专属推送——改源码教程_第52张图片
点击 下一步 ,选择 程序或脚本 这里填入你运行代码的run.bat文件

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

【微信推送】微信专属推送——改源码教程_第53张图片
文件夹地址可以直接复制
【微信推送】微信专属推送——改源码教程_第54张图片
这一步完成后直接点击完成!我们还需要设置启动程序权限,点击刚刚创建任务的属性
【微信推送】微信专属推送——改源码教程_第55张图片
勾选不管用户是否登录都要运行和使用最高权限运行,配置选择你的服务器配置(用电脑的选用自己电脑配置)

【微信推送】微信专属推送——改源码教程_第56张图片
全部完成后点击确定,然后输入VNC密码就可以啦!全部完成~


总结

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

你可能感兴趣的:(微信,python,pycharm,1024程序员节)