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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
Python脚本实现网卡流量监控
Feb 14 Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
Python 文件处理注意事项总结
Apr 10 Python
python+pyqt5实现24点小游戏
Jan 24 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
django写用户登录判定并跳转制定页面的实例
Aug 21 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
python使用列表的最佳方案
Aug 12 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 Python
python爬取代理ip的示例
Dec 18 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 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中执行cmd命令的方法
2014/10/11 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
利用Python开发实现简单的记事本
2016/11/15 Python
分享vim python缩进等一些配置
2018/07/02 Python
python中的tcp示例详解
2018/12/09 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
销售员自我评价怎么写
2013/09/19 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
个人对照检查材料
2014/02/12 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
银行贷款委托书范本
2014/10/11 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
英语导游词
2015/02/13 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
MySQL分库分表详情
2021/09/25 MySQL