python实现推送消息到微信公众号
使用到库:
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:
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实现推送消息到微信公众号的更多相关文章
- python特定时间发送消息到微信公众号
#!/usr/bin/env python# -*- coding: utf-8 -*-# __author__ = 'James'# 导入模块from wxpy import *import tim ...
- [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。
背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...
- PHP实现发送模板消息到微信公众号
简述:在这里会具体讲述到如何实现:如何通过后台的代码来实现发送模板消息到已经关注了"心想"公众号的用户. (本人新手,目前实习中,我的所有文档都是在自己开发过程中的记录,有些言语跟 ...
- PHP实现发送模板消息(微信公众号版)
以下为开发步骤: 1.微信公众号为服务号且开通微信认证(其他类型账号不能发送) 2.ip白名单设置你的服务器ip(用于获取access_token) 3.网页授权你的域名(用于获取用户的openid) ...
- 微信硬件平台(八) 4 ESP8266通过微信公众号给用户推送消息
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=自己申请微信公众号的TOKEN 输出结果: 由于aRDUINO串 ...
- 免注册公众号的三种微信推送消息服务的C#代码实现
有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新.那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢? 这里有很多应用场景,比如 ...
- 微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint:解决办法【已解决】
微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription ...
- python编写微信公众号首图思路详解
前言 之前一直在美图秀秀调整自己的微信公众号首图,效果也不尽如人意,老是调来调去,最后发出来的图片被裁剪了一大部分,丢失部分关键信息,十分恼火,于是想着用python写一个程序,把微信公众号首图的模式 ...
- 微信公众号发送告警Python脚本
调用该脚本,可以向微信公众号发生告警. #!/bin/env python #coding:utf-8 #Author: Hogan #Descript : 微信公众号发送告警脚本 import ur ...
- SNF微信公众号客户端演示-微信开发客户端能干什么
关注测试微信号: 关注后菜单页面如下: 一.扫描二维码进行订单查询演示 1.点击菜单“软件产品”->选择“扫描查询” 2.扫描如下二维码进行订单查询演示. 3.扫描结果如下: 二.微信“输入订单 ...
随机推荐
- [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 ...
- 【学习笔记】Python 使用 matplotlib 画图
目录 安装 中文显示 折线图.点线图 柱状图.堆积柱状图 坐标轴断点 参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图,记录一些常用的画图 demo 代码 安装 # 建议先 ...
- docker镜像仓库搭建-Harbor
一.Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全.提升用户使用 ...
- aspnetcore两种上传图片(文件)的方式
aspnetcore上传图片也就是上传文件有两种方式,一种是通过form-data,一种是binary. 先介绍第一种form-data: 该方式需要显示指定一个IFormFile类型,该组件会动态通 ...
- WordPress CVE-2022-4230复现分析
前言 开始CVE审计之旅 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击.默认情况下,具有管理选项功能 (a ...
- goland dlv在远程linux里运行代码开发,并debug调适
一.配置好ssh自动同步代码 参考下面连接: https://www.cnblogs.com/haima/p/13257524.html 二.配置devbug监听运行 GO Remote 填写配置 l ...
- Linux查看文件指定行数内容与查找文件内容
Linux查看文件指定行数内容 1.tail date.log 输出文件末尾的内容,默认10行 tail -20 date.log 输出最后20行的内容 tail -n -20 date.log 输出 ...
- Critical Expression
什么是Critical Expression 所谓Critical Expression就是一个表达式依赖的值,必须出现在这个表达式前面.比如: times (label-$) db 0 ;times ...
- Gitee千Star优质项目解析: ng-form-element低开引擎解析
好家伙, 在写项目的时候,我发现自己的平台的组件写的实在是太难看了,于是想去gitee上偷点东西,于是我们本期的受害者出现了 gitee项目地址 https://gitee.com/jjxliu306 ...
- Netflow/IPFIX 流量收集与分析
目录 文章目录 目录 Netflow(网络数据流检测协议) IPFIX(网络流量监测) IPFIX 组网架构 IPFIX 应用场景 Usage-based Accounting(基于使用流量的计费) ...