首页 > 编程 > Python > 正文

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

2020-01-04 16:54:59
字体:
来源:转载
供稿:网友

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

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

#coding:utf-8import urllib2import jsonimport sysdef getMsg():  #为了避免发送中文消息报错,使用utf8方式编码  reload(sys)  sys.setdefaultencoding('utf8')  #这个方法生成想要发送的消息  msg = '''要发送的消息1要发送的消息2要发送的消息3...'''  return msgif __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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表