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 13 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
Python排序搜索基本算法之插入排序实例分析
Dec 11 Python
PyQt5 pyqt多线程操作入门
May 05 Python
python matlibplot绘制3D图形
Jul 02 Python
python设置值及NaN值处理方法
Jul 03 Python
python适合人工智能的理由和优势
Jun 28 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python+selenium实现12306模拟登录的步骤
Jan 21 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求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
php基本函数汇总
2015/07/09 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python对列表排序的方法实例分析
2015/05/16 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
Django REST framework 分页的实现代码
2019/06/19 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
python 实现批量图片识别并翻译
2020/11/02 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
员工拾金不昧表扬信
2014/01/09 职场文书
会计专业自我评价
2014/02/12 职场文书
高中军训感言200字
2014/02/23 职场文书
气象学专业个人求职信
2014/04/22 职场文书
高二学生评语大全
2014/04/25 职场文书
秋天的雨教学反思
2014/04/27 职场文书
3的组成教学反思
2014/04/30 职场文书
相亲活动方案
2014/08/26 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
预备党员转正意见
2015/06/01 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技