使用到库

Requests

实现方式

微信已开放了对应的接口,直接通过python的requests库,发起请求,实现推送消息到公众号

微信公众号准备:

1、没有注册微信公众号,可以使用微信提供的测试公众号,来测试公众号的推送

https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

2、点击登录,使用自己微信账号,扫一扫登录

3、登录成功后,会生成一个自己的测试公众号,有测试号的appid、appsecret

4、要看推送的效果,要先关注当前的测试账号,关注成功后,可在列表查看当前的粉丝数和具体的open_id

使用微信公众号的接口

1、         获取微信公众号的授权token:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={appsecret}

2、         获取当前公众号的粉丝的open_id:

https://api.weixin.qq.com/cgi-bin/user/get?access_token={self.token}&next_openid={next_openid}

3、         发送模板消息的接口:

https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={self.token}

4、         发送普通消息的接口:

https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=xxx

实现逻辑

发送消息的接口,需要验证token,和传入粉丝的open_id,进行发送,发送模板消息,需要传入模板id

微信公众号后台,模板管理,增加模板,模板内容需要配置对应

实现代码:

class WechatMessagePush:
def __init__(self, appid, appsecret, temple_id):
self.appid = appid
self.appsecret = appsecret # 模板id,参考公众号后面的模板消息接口 -> 模板ID(用于接口调用):IG1Kwxxxx
self.temple_id = temple_id self.token = self.get_Wechat_access_token() def get_Wechat_access_token(self):
'''
获取微信的access_token: 获取调用接口凭证
:return:
'''
url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={self.appid}&secret={self.appsecret}"
response = requests.get(url) res = response.json()
if "access_token" in res:
token = res["access_token"]
return token def get_wechat_accout_fans_count(self):
'''
获取微信公众号所有粉丝的openid
'''
next_openid = ''
url = f"https://api.weixin.qq.com/cgi-bin/user/get?access_token={self.token}&next_openid={next_openid}"
response = requests.get(url)
res = response.json()['data']['openid'] def send_wechat_temple_msg(self, content):
'''
发送微信公众号的模板消息'''
url = f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={self.token}" fan_open_id = self.get_wechat_accout_fans_count()
for open_id in fan_open_id:
body = {
"touser": open_id,
'template_id': self.temple_id,
# 'url': 'http://www.jb51.net',
"topcolor": "#667F00",
"data": {
"content": {"value": content}
}
}
headers = {"Content-type": "application/json"}
data = json.JSONEncoder().encode(body)
res = requests.post(url=url, data=data, headers=headers)

调用方法,发送消息

if __name__ == '__main__':
appid = "wx4d4xxxx"
screct = "522xxxx4"
template_id = 'IG1Kxxbxxxxxls'
WechatMessagePush(appid, screct, template_id).send_wechat_txt_msg(msg="测试")

实现的推送的消息

python实现推送消息到微信公众号的更多相关文章

  1. python特定时间发送消息到微信公众号

    #!/usr/bin/env python# -*- coding: utf-8 -*-# __author__ = 'James'# 导入模块from wxpy import *import tim ...

  2. [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。

    背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...

  3. PHP实现发送模板消息到微信公众号

    简述:在这里会具体讲述到如何实现:如何通过后台的代码来实现发送模板消息到已经关注了"心想"公众号的用户. (本人新手,目前实习中,我的所有文档都是在自己开发过程中的记录,有些言语跟 ...

  4. PHP实现发送模板消息(微信公众号版)

    以下为开发步骤: 1.微信公众号为服务号且开通微信认证(其他类型账号不能发送) 2.ip白名单设置你的服务器ip(用于获取access_token) 3.网页授权你的域名(用于获取用户的openid) ...

  5. 微信硬件平台(八) 4 ESP8266通过微信公众号给用户推送消息

    https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=自己申请微信公众号的TOKEN 输出结果:  由于aRDUINO串 ...

  6. 免注册公众号的三种微信推送消息服务的C#代码实现

    有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新.那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢? 这里有很多应用场景,比如 ...

  7. 微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint:解决办法【已解决】

    微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription ...

  8. python编写微信公众号首图思路详解

    前言 之前一直在美图秀秀调整自己的微信公众号首图,效果也不尽如人意,老是调来调去,最后发出来的图片被裁剪了一大部分,丢失部分关键信息,十分恼火,于是想着用python写一个程序,把微信公众号首图的模式 ...

  9. 微信公众号发送告警Python脚本

    调用该脚本,可以向微信公众号发生告警. #!/bin/env python #coding:utf-8 #Author: Hogan #Descript : 微信公众号发送告警脚本 import ur ...

  10. SNF微信公众号客户端演示-微信开发客户端能干什么

    关注测试微信号: 关注后菜单页面如下: 一.扫描二维码进行订单查询演示 1.点击菜单“软件产品”->选择“扫描查询” 2.扫描如下二维码进行订单查询演示. 3.扫描结果如下: 二.微信“输入订单 ...

随机推荐

  1. [FAQ] golang-migrate/migrate error: migration failed in line 0: (details: Error 1065: Query was empty)

    当我们使用 migrate create 创建了迁移文件. 没有及时填写内容,此时运行 migrate 的后续命令比如 up.down 会抛出错误: error: migration failed i ...

  2. 【学习笔记】Python 使用 matplotlib 画图

    目录 安装 中文显示 折线图.点线图 柱状图.堆积柱状图 坐标轴断点 参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图,记录一些常用的画图 demo 代码 安装 # 建议先 ...

  3. docker镜像仓库搭建-Harbor

    一.Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全.提升用户使用 ...

  4. aspnetcore两种上传图片(文件)的方式

    aspnetcore上传图片也就是上传文件有两种方式,一种是通过form-data,一种是binary. 先介绍第一种form-data: 该方式需要显示指定一个IFormFile类型,该组件会动态通 ...

  5. WordPress CVE-2022-4230复现分析

    前言 开始CVE审计之旅 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击.默认情况下,具有管理选项功能 (a ...

  6. goland dlv在远程linux里运行代码开发,并debug调适

    一.配置好ssh自动同步代码 参考下面连接: https://www.cnblogs.com/haima/p/13257524.html 二.配置devbug监听运行 GO Remote 填写配置 l ...

  7. Linux查看文件指定行数内容与查找文件内容

    Linux查看文件指定行数内容 1.tail date.log 输出文件末尾的内容,默认10行 tail -20 date.log 输出最后20行的内容 tail -n -20 date.log 输出 ...

  8. Critical Expression

    什么是Critical Expression 所谓Critical Expression就是一个表达式依赖的值,必须出现在这个表达式前面.比如: times (label-$) db 0 ;times ...

  9. Gitee千Star优质项目解析: ng-form-element低开引擎解析

    好家伙, 在写项目的时候,我发现自己的平台的组件写的实在是太难看了,于是想去gitee上偷点东西,于是我们本期的受害者出现了 gitee项目地址 https://gitee.com/jjxliu306 ...

  10. Netflow/IPFIX 流量收集与分析

    目录 文章目录 目录 Netflow(网络数据流检测协议) IPFIX(网络流量监测) IPFIX 组网架构 IPFIX 应用场景 Usage-based Accounting(基于使用流量的计费) ...