微信公众号模板消息推送测试Python版无需服务器-保姆级教程

手上有个项目,是服务器挂着自动化的爬虫的,但我用的那个IP代理商没有用尽报警,导致几次IP用尽,程序爬不到数据,进程死循环了。之前想过发邮箱提醒我,但是邮箱把又不及时,老忘记看,因为我QQ用的很少了,用的最多的就是微信,每天无论如何我都会打开微信看的,于是我想到公众号去提醒。看了看文档发现微信公众号的模板消息推送符合我的需求,于是开干。按照全文的步骤一步步来,绝对能搞定。
在这里插入图片描述

本文仅作为测试使用,后续会发Django版本的服务器自动推送的全教程

申请测试号

首先就是注册一个微信公众号了,随便注册就行了,但是如果你要上线使用,请记住申请服务号,至于服务号和订阅号的区别我这里不展开的的赘述,有相关需求的可以去微信官方查看。

注册完成后点击左侧 设置与开发 下面的 接口权限 也能简单看看这些相关功能所需要的公众号的类别。一般咱自己申请的就是个体号,基本没啥功能,就只能发发文章罢了。另外提一嘴,如果要正式上线做自动化推送的话,就需要公众号认证的,这玩意还要300块,但我看tb有那种几毛钱的,不是太懂有什么风险,懂哥可以留言。如果项目正经让公司出钱就行了。自己做工具用可以省钱找那种代认证。
在这里插入图片描述


注册完公众号后,开始进入测试号
位置:左侧导航栏 开发者工具 下的 公众平台测试账号

在这里插入图片描述

进入后会给你一个appID和一个appsecret,这个是关键参数,等会测试要用。这个接口配置信息这块不用管,暂时做本地测试,以后要上线测试再去配置这个东西

在这里插入图片描述


新增测试模板


点击新增测试模板,以下是正确格式

提示前缀 + { {xxx.DATA}}
然后你输完一个记得换行。到时候发送通知模板时候的排版就和你现在一样
在这里插入图片描述

提交后会得到一个模板ID(等下代码会用到)
在这里插入图片描述


最后就是扫码关注测试公众号了
关注了后会看到你的微信号昵称和一个微信号,这个微信号就是你这个微信号在此测试公众号中的唯一凭证。也叫做openId
在这里插入图片描述






至此已经有了4个值,分别是appIDappsecret模板IDopenId



实现步骤解析:(重点)
首先需要明确一个点,向微信api交互,都需要获得一个临时的token
然后你要干啥就访问啥接口,看清除文档要的是POST还是GET请求,在请求的哪里加上token,然后请求这个URL的时候要携带什么参数
最后直接发送这个请求,你想要做的事微信的服务器就会帮你做了

附上本文关键的API文档 (想深究的可以看看):

获取access token:
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

发送模板消息:
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html#%E5%8F%91%E9%80%81%E6%A8%A1%E6%9D%BF%E6%B6%88%E6%81%AF



完整代码:

import requests
import json

appID = "wx8ac3ded9236efe2a"
appSecret = "131b8d9d874af6f7dbf11d3b751ce6b2"
openId = "oHB4K6oJqzBh9FoM2J87KEfpS3Ro"


def get_access_token():
    # 获取access token的url
    url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}' \
        .format(appID, appSecret)
    response = requests.get(url).json()
    print(response)
    access_token = response.get('access_token')
    return access_token


def send_msg(access_token):
    # touser 就是 openID
    # template_id 就是模板ID
    # url 就是点击模板跳转的url
    # data就按这种格式写,time和text就是之前{
    
    {time.DATA}}中的那个time,先试试你就知道了,value就是你要替换DATA的值
    body = {
    
    
        "touser": openId,
        "template_id": "JHzQALjvNyjbqKehXZbtBYS-l_e1oowCeZrpTHQmN7U",
        "url": "http://weixin.qq.com/download",
        "data": {
    
    
            "time": {
    
    
                "value": "今天是8月11号",
                "color": "#173177"
            },
            "text": {
    
    
                "value": "微信官方文档写的真的不清晰",
                "color": "#173177"
            }
        }
    }
    url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={}'.format(access_token)
    print(requests.post(url, json.dumps(body)).text)

if __name__ == '__main__':
    # 1.获取access_token
    access_token = get_access_token()
    # 2.发送模板消息
    send_msg(access_token)

代码解析:
其实注释也写的很清晰了,4个值都发挥了关键的作用。如果要上线取用的话,也基本上这个流程,要模板消息更多的使用方法,以及更sao的操作就去看我上面贴的文档。先这样写,测试成功后,你再自己尝试这里改改那里改改看看什么变化,就理解了。不懂的话留言,CSDN开了邮箱提醒很快能看到


效果展示:
电脑端
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44718932/article/details/132223216