前阵子部署zabbix监控系统,做了个微信报警,下面分享下微信调API发消息的脚本。要用微信发消息,自己首先要有微信企业号,如果没有申请也容易

准备工作:

1.申请微信企业号

2.在企业号后台创建应用

3.关注微信企业号

脚本用Python3写的,内容如下:

#!/usr/local/python3.5/bin/python3.5

import json

import sys

import os

import time

import urllib.request

tkapi = ‘https://qyapi.weixin.qq.com/cgi-bin/gettoken‘

msgapi = ‘https://qyapi.weixin.qq.com/cgi-bin/message/send‘

corpid = ‘微信企业号corpid‘

corpsecret = ‘微信企业号corpsecret‘

agentid = ‘微信企业号创建的应用ID‘

tokentmp = ‘token.txt‘

url = "%s?corpid=%s&corpsecret=%s" % (tkapi,corpid,corpsecret)

senduser = sys.argv[1]

msg = sys.argv[2]

nowtime = int(time.time())

def gettoken():

try:

res = urllib.request.urlopen(url)

if res.status == 200:

result = res.read()

result = str(result, encoding = "utf-8")

jresult = json.loads(result)

errcode = jresult[‘errcode‘]

if errcode == 0:

token = jresult[‘access_token‘]

token = token.strip(‘\r‘)

token = token.strip(‘\n‘)

f = open(tokentmp,‘w‘)

log = "%s:%s" % (nowtime,token)

f.write(log)

f.close()

return(‘0‘,token)

else:

return(‘1‘,‘get token fail‘)

else:

return(‘1‘,‘get token return http code error‘)

except Exception as e:

#print(Exception,":",e)

return(‘1‘,‘get token http request fail‘)

def sendmsg(token,senduser,msg):

SendMsgUrl = "%s?access_token=%s" % (msgapi,token)

data = {‘touser‘:senduser,‘msgtype‘:‘text‘,‘agentid‘:agentid,‘text‘:{‘content‘:msg}}

data = json.dumps(data)

data = data.replace(‘-n‘,‘\\n‘)

data = bytes(data,‘utf8‘)

try:

request = urllib.request.Request(SendMsgUrl)

res1 = urllib.request.urlopen(request,data)

if res1.status == 200:

result1 = res1.read()

result1 = str(result1, encoding = "utf-8")

jresult1 = json.loads(result1)

errcode1 = jresult1[‘errcode‘]

if errcode1 == 0:

return(‘0‘,errcode1)

else:

return(‘1‘,‘send msg fail‘)

else:

return(‘1‘,‘send msg return http code error‘)

except:

return(‘1‘,‘send msg http request fail‘)

if os.path.exists(tokentmp):

tk = open(tokentmp,‘r‘).readline()

tk = str(tk)

tkstrs = tk.split(‘:‘)

lasttime = int(tkstrs[0])

if nowtime - lasttime < 3600:

token = tkstrs[1]

stat = ‘0‘

else:

(stat,token) = gettoken()

else:

(stat,token) = gettoken()

if stat == ‘0‘:

(stat1,msgresult) = sendmsg(token,senduser,msg)

if stat1 == ‘0‘:

print(‘send message success‘)

else:

print(‘get token success,send message fail errinfo:‘+msgresult)

else:

print(‘get token fail errinfo:‘+token)

脚本使用方法:

python3.5 wenxin.py 消息接收人 消息内容

python3.5 wenxin.py opsfans ‘微信测试消息‘

消息内容换行符为‘-n‘

python水平有限,大牛勿喷

原文地址:http://blog.51cto.com/13719882/2129939

python微信接口发送消息_调用微信API发送微信消息python脚本相关推荐

  1. java传真发送_调用java API发送传真

    最近搞了一个java发送传真程序,在网上搜了半天,没找到具体的例子,最后找到了国外的开源技术jacob,才解决了这个问题. 环境要求:windows xp系统,jdk 1.4(不要太高或太低,不然会发 ...

  2. C#调用新浪微博API发送消息成功

    成功一小步,用C#调用新浪微博API发送消息成功,庆祝一下.其实没什么难的,主要是看新浪的开发文档受到了误导. 在新浪的文档里面的参数从说明到例子都是组合参数,并且遗漏了一个参数说明,调试的时候查看错 ...

  3. java群发图文消息_使用Java语言开发微信公众平台(四)——图文消息的发送与响应...

    在上一篇文章中,我们实现了被关注回复与关键词回复功能.在用户关注的时候自动推送功能菜单,并根据用户输入的关键词,回复特定信息.但是,我们只能回复文本消息给用户,如何才回复一条图文消息呢?本周,我们一起 ...

  4. python图灵机器人怎么退出_python调用图灵机器人实现微信自动回复

    python调用图灵机器人实现微信自动回复 发布时间:2018-06-17 22:04, 浏览次数:338 , 标签: python 环境准备: 微信号 pip  install itchat  pi ...

  5. java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发

    [Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...

  6. python微信好友分析源代码_搞事情了 | 教你用Python分析微信好友信息(内附完整代码)...

    本文经授权转载至公众号 Python 知识圈 未经授权 严禁二次转载 阅读文本大概需要 5 分钟 技术群里一位读者微信私聊我,问我能不能统计下微信好友信息并以文件形式保存.其实,以前也写过类似的文章, ...

  7. python 爬取直播弹幕视频_调用斗鱼API爬取直播间弹幕信息(用户昵称及弹幕内容)...

    调用斗鱼API爬取直播间弹幕信息(用户昵称及弹幕内容) 查看<斗鱼弹幕服务器第三方接入协议v1.4.1>,了解斗鱼API的使用方法,即如何连接斗鱼弹幕服务器.维持连接及获取弹幕信息 Pyt ...

  8. 微信接口php oa,你必须了解OA与微信结合的几种方式

    企业号来了,微信再一次以其移动互联网第一入口的绝对优势引来一片膜拜.对于管理软件厂商而言,尤其是被企业赋予移动办公统一入口使命的协同OA而言,这幸福来得有些特别:因为企业号的推动,大把的移动互联用户都 ...

  9. python生成接口文档_使用apiDoc实现python接口文档编写

    使用apiDoc实现python接口文档编写 apiDoc的安装 npm install apidoc -g 生成api的终端命令:apidoc -i 代码所在路径-o 生成文件的路径 接口文档的编写 ...

最新文章

  1. 【C++】unordered_map 使用方法
  2. python selenium webdriver方法封装(find_element_by)
  3. CF-825 G.Tree Queries(DFS)
  4. 前端学习(2686):重读vue电商网站7之登录预校验
  5. leetcode数组汇总_LeetCode刷题实战43:字符串相乘
  6. python 类命名空间,关于python:命名空间和类
  7. 带权二部图匹配(KM算法)讲解及Matlab实现
  8. vue3.0 关闭 eslint
  9. 1、【QT】QT6.2 官网下载与安装教程
  10. android 隐藏电池,Android8.1隐藏状态栏电池图标
  11. 华为手机 6.0 拍照相册选择权限问题
  12. 模拟输出21点所有可能的Black Jack牌型
  13. 关于一粒云盘使用心得
  14. 如何考量私有云的解决方案
  15. 济南联通软件研究院面试总结
  16. dmhs之dm8 to dm8
  17. CTR 预测理论(九):Boosting 集成算法中 Adaboost, GBDT 与 XGBoost 的区别
  18. NOI OJ 1.3 14:大象喝水 C语言
  19. 关于扼制抑制Win10自动更新,关闭更新方法
  20. hdu 5266 pog loves szh III LCA+RMQ

热门文章

  1. 网易云音乐播放背景随歌曲封面变化
  2. 开发中,模拟器网络请求成功,真机网络请求失败
  3. PythonC++相互混合调用编程全面实战-18c++给python传递变量的两种方法
  4. 傅老师黑暗之魂复刻笔记(第一季第一部分)
  5. 雅虎天气API 多语言参数
  6. 100%绝对是良心之作 300元以下机箱推荐
  7. OUTLOOK之不能直接发送邮件的Mapi错误解决方法
  8. WZOI-281十六进制转十进制
  9. 【我的Android进阶之旅】解决Android项目编译报错: Program type already present : com.xxx.xxxx.BuildConfig
  10. 微信支付之-扫码支付-模式2(模式1)