python实现通过企业微信发送消息

实现了通过企业微信发送消息,平时用于运维的告警还是不错的,相对于邮件来说,实时性更高,不过就是企业微信比较麻烦,此处不做过多解释。

企业微信api的详细请看:http://work.weixin.qq.com/api/doc#10167

话不多说,直接代码

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3
 4 # @Time    : 2018/4/25 17:06
 5 # @Author  : zms
 6 # @Site    :
 7 # @File    : WeChat.py
 8 # @Software: PyCharm Community Edition
 9
10 # !/usr/bin/env python
11 # coding:utf-8
12 # file wechat.py
13
14 import time
15 import requests
16 import json
17
18 import sys
19
20 reload(sys)
21 sys.setdefaultencoding(‘utf8‘)
22
23
24 class WeChat:
25     def __init__(self):
26         self.CORPID = ‘***********‘
27         self.CORPSECRET = ‘*********************************‘
28         self.AGENTID = ‘**************‘
29         self.TOUSER = "**********"  # 接收者用户名
30
31     def _get_access_token(self):
32         url = ‘https://qyapi.weixin.qq.com/cgi-bin/gettoken‘
33         values = {‘corpid‘: self.CORPID,
34                   ‘corpsecret‘: self.CORPSECRET,
35                   }
36         req = requests.post(url, params=values)
37         data = json.loads(req.text)
38         # print data
39         return data["access_token"]
40
41     def get_access_token(self):
42         try:
43             with open(‘./tmp/access_token.conf‘, ‘r‘) as f:
44                 t, access_token = f.read().split()
45         except:
46             with open(‘./tmp/access_token.conf‘, ‘w‘) as f:
47                 access_token = self._get_access_token()
48                 cur_time = time.time()
49                 f.write(‘\t‘.join([str(cur_time), access_token]))
50                 return access_token
51         else:
52             cur_time = time.time()
53             if 0 < cur_time - float(t) < 7260:
54                 return access_token
55             else:
56                 with open(‘./access_token.conf‘, ‘w‘) as f:
57                     access_token = self._get_access_token()
58                     f.write(‘\t‘.join([str(cur_time), access_token]))
59                     return access_token
60
61     def send_data(self, message):
62         msg = message.encode(‘utf-8‘)
63         send_url = ‘https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=‘ + self.get_access_token()
64         send_values = {
65             "touser": self.TOUSER,
66             "msgtype": "text",
67             "agentid": self.AGENTID,
68             "text": {
69                 "content": msg
70                 },
71             "safe": "0"
72             }
73         send_data = ‘{"msgtype": "text", "safe": "0", "agentid": %s, "touser": "%s", "text": {"content": "%s"}}‘ % (
74             self.AGENTID, self.TOUSER, msg)
75         r = requests.post(send_url, send_data)
76         # print r.content
77         return r.content
78
79
80 if __name__ == ‘__main__‘:
81     wx = WeChat()
82     wx.send_data("test")

原文地址:https://www.cnblogs.com/bluezms/p/8948187.html

时间: 2024-09-30 22:13:12

python实现通过企业微信发送消息的相关文章

使用python3给企业微信发送消息

一.概述 本文将介绍如何使用python3给企业微信发送消息.我的环境是linux + python3.6.10. 二.python脚本 #!/root/.virtualenvs/wechat/bin/python # usage: send message via wechat import requests, sys, json import urllib3 urllib3.disable_warnings() ###填写参数### # Corpid是企业号的标识 Corpid = "ww3

配置 ZABBIX 使用企业微信发送 Alert 消息

成功的从企业微信中收到的 Alert 消息的样子: Oracle 日志 Alert: 网络专线 Alert: 服务器 Alert: Linux 命令行使用方法: ./workweixin_send.php Usage: workweixin_send.php.php <username> <title> <content> ./workweixin_send.php <这里填写企业个人微信ID> hi 这是一条测试的企业微信消息 Windows 命令行使用方

用企业微信发送告警

1.遇到的坑 {"errcode":40001,"errmsg":"invalid credential, hint: [1507881186_cb1093c9bcaedaf108b7ce2ea10f2d38]"} 40001 不合法的secret参数 secret在应用详情/通讯录管理助手可查看 排查secret的取值也没有错啊.就郁闷了. 最后发现问题:是corpid写错了.把企业id写成了应用id. 因为“全局错误码”里没有提到corpid

zabbix使用企业微信发消息

注册一个企业微信,https://work.weixin.qq.com/ 接收消息有2种方式,一是用企业微信,二是用个人微信(需要关注企业号,需要登录扫描下图邀请关注的二维码): 官方api说明 地址:https://work.weixin.qq.com/api/doc#10167 过程 一:创建自建应用「报警」,然后用公司corpid和企业应用secret获取token,https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&co

利用Python定时给女友微信发送今日天气情况,异地恋维护感情神器

前言 在我们生活当中,有许多的×××姐和小哥哥都是出于异地恋的状态. 所以进群:839383765 可以获取各类Python入门学习资料+视频资料+在线直播教学! 我为你翻山越岭,却无心看风景.在她感冒的时候,我不能说开门,只能说喝水. 虽然不能做到无微不至的照顾,但是咱们需要更加细心的了解,教你用Python给女友微信定时发送天气预报,减少女友的生病以及不舒服,不然你到时候只能说多喝热水就不好了! 实现效果图构思 看过背景中的需求描述,要实现这个功能,我们需要解决以下这么几个问题: 1.爬取天

资深程序员教你用Python如何调企业微信接口发送消息!叼的不行!

进入正题 先来几张好玩的图片 首先进入python交互界面,导入我自己写的模块,然后发一个测试消 息,"Hello,小伙伴们好!",然后看看企业号能否收到相应的消息. 那么问题来了,既然可以这么玩,那岂不可以把所有能通知的信息都可以通过python调用接口发送信息了?那当然了,可以把自己感兴趣的用爬虫爬下来,然后发给自己,也可以用于报警等信息,还可以......就看你自己怎么玩吧 上图第一行嘛,就是python解释器的绝对路径,也就是你python的安装路径,自行修改即可.第二行申明编

zabbix微信发送消息脚本

cat /usr/local/zabbix/share/zabbix/alertscripts/sed_messages_weixin.py python2.x#!/usr/bin/env python # _*_ coding: utf-8 _*_ # author:chenjianwen # email:[email protected] import sys import urllib2 import json import requests corpid = 'xxxx' #企业微信号i

微信发送消息后显示该公共号暂时无法提供服务,请稍后再试!

用户发送信息,公众账号会提示"该公众号暂时无法提供服务,请稍后再试".遇到这个问题,我们可以排除一下是否我们返回的数据有问题. 首先代码返回一个空的字符串,如果还是出现这样的提示,请看看签名验证是否失败,调试一下,看看log.     如果没有出现这样的提示,说明我们返回的结果格式有问题. 下面参考一下我返回的错误格式: <xml> <toUserName><![CDATA[o_ZKtuBGHyFi2YcpSKlugRAomGrU]]></to

python实现调用企业微信报警

代码部分 vim wechat.py #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hou Xingbin import urllib import json import sys import time from wechat_conf import CorpID, Agentid, Secret localtime = time.strftime("[%H:%M:%S]", time.localtime()) dl=&q