python实现给微信公众号发送消息的方法


Posted in Python onJune 30, 2017

本文实例讲述了python实现给微信公众号发送消息的方法。分享给大家供大家参考,具体如下:

现在通过发微信公众号信息来做消息通知和告警已经很普遍了。最常见的就是运维通过zabbix调用shell脚本给微信发消息,起到告警的作用。当要发送的信息较多,而且希望按照指定格式显示的好看一点的时候,shell处理起来,个人感觉不太方便。于是我用Python重写了发微信的功能。

#coding:utf-8
import urllib2
import json
import sys
def getMsg():
  #为了避免发送中文消息报错,使用utf8方式编码
  reload(sys)
  sys.setdefaultencoding('utf8')
  #这个方法生成想要发送的消息
  msg = '''
要发送的消息1
要发送的消息2
要发送的消息3
...
'''
  return msg
if __name__ == '__main__':
  #微信公众号上应用的CropID和Secret
  CropID='xxxxxxxxxxxxxxxxxx'
  Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  #获取access_token
  GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s" % (CropID,Secret)
  result=urllib2.urlopen(urllib2.Request(GURL)).read()
  dict_result = json.loads(result)
  Gtoken=dict_result['access_token']
  #生成通过post请求发送消息的url
  PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Gtoken
  #企业号中的应用id
  AppID=1
  #部门成员id,微信接收者
  UserID=1
  #部门id,定义可接收消息的成员范围
  PartyID=1
  #生成post请求信息
  post_data = {}
  msg_content = {}
  msg_content['content'] = getMsg()
  post_data['touser'] = UserID
  post_data['toparty'] = PartyID
  post_data['msgtype'] = 'text'
  post_data['agentid'] = AppID
  post_data['text'] = msg_content
  post_data['safe'] = '0'
  #由于字典格式不能被识别,需要转换成json然后在作post请求
  #注:如果要发送的消息内容有中文的话,第三个参数一定要设为False
  json_post_data = json.dumps(post_data,False,False)
  #通过urllib2.urlopen()方法发送post请求
  request_post = urllib2.urlopen(PURL, json_post_data)
  #read()方法查看请求的返回结果
  print request_post.read()

注意:

2017年6月初开始,微信企业公众号迁移到企业微信,发送消息有一些调整,请参考前文《[企业公众号]升级到[企业微信]之后发送消息失败的解决方法》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 时间操作例子和时间格式化参数小结
Apr 24 Python
python base64 decode incorrect padding错误解决方法
Jan 08 Python
在Docker上开始部署Python应用的教程
Apr 17 Python
Python中类的定义、继承及使用对象实例详解
Apr 30 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
Python中if elif else及缩进的使用简述
May 31 Python
Python函数装饰器实现方法详解
Dec 22 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
Django模板语言 Tags使用详解
Sep 09 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
Python信息抽取之乱码解决办法
Jun 29 #Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 #Python
python笔记:mysql、redis操作方法
Jun 28 #Python
老生常谈Python序列化和反序列化
Jun 28 #Python
python flask实现分页效果
Jun 27 #Python
Django自定义分页效果
Jun 27 #Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 #Python
You might like
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
详解js闭包
2014/09/02 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python之pandas用法大全
2018/03/13 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
python ubplot使用方法解析
2020/01/10 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
html5实现滑块功能之type="range"属性
2020/02/18 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
C#面试题问题集
2016/04/02 面试题
家居饰品店创业计划书
2014/01/31 职场文书
简单的项目建议书模板
2014/03/12 职场文书
小学生评语大全
2014/04/18 职场文书
入职担保书范文
2014/05/21 职场文书
师范类求职信
2014/06/21 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
2014年检验员工作总结
2014/11/19 职场文书
国庆阅兵观后感
2015/06/15 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
关于python爬虫应用urllib库作用分析
2021/09/04 Python
Redis实现短信验证码登录的示例代码
2022/06/14 Redis