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下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
python Pygame的具体使用讲解
Nov 03 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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
PHP实现的浏览器检查类
2016/04/11 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
PHP时间函数使用详解
2019/03/21 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
js中的string.format函数代码
2020/08/11 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
Python专用方法与迭代机制实例分析
2014/09/15 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
python字符串下标与切片及使用方法
2020/02/13 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
综合内勤岗位职责
2014/04/14 职场文书
电力培训心得体会
2014/09/02 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
债务纠纷起诉书
2015/05/20 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
教师素质教育心得体会
2016/01/19 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
nginx搭建NFS网络文件系统
2022/04/14 Servers