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

 更新时间:2017年06月30日 08:51:01   作者:felix_yujing  
这篇文章主要介绍了python实现给微信公众号发送消息的方法,结合实例形式分析了Python针对微信公众号接口操作的相关技巧,需要的朋友可以参考下

本文实例讲述了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编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。

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

相关文章

  • 快速解决docker-py api版本不兼容的问题

    快速解决docker-py api版本不兼容的问题

    今天小编就为大家分享一篇快速解决docker-py api版本不兼容的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • matplotlib画图之修改坐标轴刻度问题

    matplotlib画图之修改坐标轴刻度问题

    这篇文章主要介绍了matplotlib画图之修改坐标轴刻度问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 详解Tensorflow数据读取有三种方式(next_batch)

    详解Tensorflow数据读取有三种方式(next_batch)

    本篇文章主要介绍了Tensorflow数据读取有三种方式(next_batch),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • python+pytest接口自动化之session会话保持的实现

    python+pytest接口自动化之session会话保持的实现

    在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,本文主要介绍了python+pytest接口自动化之session会话保持的实现,感兴趣的可以了解一下
    2022-06-06
  • 关于Tensorflow分布式并行策略

    关于Tensorflow分布式并行策略

    今天小编就为大家分享一篇关于Tensorflow分布式并行策略,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python Django2 model 查询介绍(条件、范围、模糊查询)

    Python Django2 model 查询介绍(条件、范围、模糊查询)

    这篇文章主要介绍了Python Django2 model 查询介绍(条件、范围、模糊查询),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 10分钟快速入门Pandas库

    10分钟快速入门Pandas库

    pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,这篇文章主要介绍了10分钟快速入门Pandas库,重点介绍pandas常见使用方法,结合实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Python实战之外星人入侵游戏示例代码

    Python实战之外星人入侵游戏示例代码

    这篇文章主要介绍了利用Python编写的外星人入侵游戏的示例代码,文中的代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以学习一下
    2022-01-01
  • 利用python实现查看溧阳的摄影圈

    利用python实现查看溧阳的摄影圈

    这篇文章主要介绍了利用python实现查看溧阳的摄影圈,文章基于BeautifulSoup的相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • 关于numpy数组中元素单个选取或部分选取问题

    关于numpy数组中元素单个选取或部分选取问题

    这篇文章主要介绍了关于numpy数组中元素单个选取或部分选取问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论