博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现通过企业微信发送消息
阅读量:4313 次
发布时间:2019-06-06

本文共 2799 字,大约阅读时间需要 9 分钟。

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

企业微信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 python11 # coding:utf-812 # file wechat.py13 14 import time15 import requests16 import json17 18 import sys19 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 data39 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_token51 else:52 cur_time = time.time()53 if 0 < cur_time - float(t) < 7260:54 return access_token55 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_token60 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": msg70 },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.content77 return r.content78 79 80 if __name__ == '__main__':81 wx = WeChat()82 wx.send_data("test")

 

转载于:https://www.cnblogs.com/bluezms/p/8948187.html

你可能感兴趣的文章
codevs 1163:访问艺术馆
查看>>
冲刺Noip2017模拟赛3 解题报告——五十岚芒果酱
查看>>
并查集
查看>>
sessionStorage
查看>>
代码示例_进程
查看>>
Java中关键词之this,super的使用
查看>>
人工智能暑期课程实践项目——智能家居控制(一)
查看>>
前端数据可视化插件(二)图谱
查看>>
kafka web端管理工具 kafka-manager【转发】
查看>>
获取控制台窗口句柄GetConsoleWindow
查看>>
Linux下Qt+CUDA调试并运行
查看>>
51nod 1197 字符串的数量 V2(矩阵快速幂+数论?)
查看>>
OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统
查看>>
zabbix
查看>>
多线程基础
查看>>
完美解决 error C2220: warning treated as error - no ‘object’ file generated
查看>>
使用SQL*PLUS,构建完美excel或html输出
查看>>
SQL Server数据库笔记
查看>>
X-Forwarded-For伪造及防御
查看>>
android系统平台显示驱动开发简要:LCD驱动调试篇『四』
查看>>