通过企业微信API接口发送消息
最近给公司测试组内部开发一个记账小工具,当账目出现问题的时候需要发送消息通知大家,前期主要采用的QQ发送通知消息,但是有一天突然无法连接到QQ服务器,运维的同学建议采用微信的方式对接然后进行告警,所以这里采用微信的企业号进行消息发送,微信企业号目前已经变更为企业微信,所以需要注册一个企业微信;
一、获取企业微信接口文档,实现消息发送;
1.采用创建发送应用消息,企业微信接口文档:https://work.weixin.qq.com/api/doc#90000/90135/90664;
企业微信提供了好几种发送消息的模式,主要应用支持推送文本、图片、视频、文件、图文等类型;

2.我这里主要作用是发送消息告诉想过成员,那么我这里只要发送文件消息即可,下面看下发送消息的接口定义


3、根据接口定义获取我们需要的相关信息,首先我需要获取access_token,我们查看下获取access_token接口文档

根据接口文档,获取access_token值,我们需要获取Corpid和SECRECT这两个参数,发送消息我们需要知道关键参数agentid,toparty;
二、获取相应的参数,为接口请求创造条件
1.注册成功以后需要我们创建一个应用;

2. 应用创建成功,我们需要配置可见范围,配置这里主要为了后期发送消息,可以指定用户组,这里有几个字段很关键,Agentid,Secret;

3.获取企业微信corpid值

三、获取相应参数以后通过python 实现自动发送消息
# 获取微信access_token
def get_token():
payload_access_token = {'corpid': 'wwfcdce534bxxxxx', 'corpsecret': '-hpCA42o4cm1DzgSfS23XtEZ93ZI3VNwDgcP-xxxxxUd4X6Q'}
token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
r = requests.get(token_url, params=payload_access_token)
dict_result = (r.json())
return dict_result['access_token'] def send_message():
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % get_token()
data = {"toparty": 1, "msgtype": "text", "agentid": xxxxx, "text": {"content": "提现成功"}, "safe": 0}
data = json.dumps(data, ensure_ascii=False)
r = requests.post(url=url, data=data.encode("utf-8").decode("latin1"))
return r.json() if __name__ == '__main__':
send_message()
这样我们就可以将消息发送至对应的用户组,这里需要注意access_token 的有效期7200s,而且接口的请求次数有限制,所以我们需要对返回的token值进行缓存,可以存储在redis或者MySQL,过期以后进行重复获取;
四、微信接收企业微信的消息;
一般情况接收企业微信需要安装企业微信单独的程序,这样显示的很不方便,所以需要关系下个人微信;

通过连接微信->微信工作台->邀请关注 下载对应的二维码即可,个人微信关注以后就可以直接接收消息,其实这个过程跟不关注公众号一样;
通过企业微信API接口发送消息的更多相关文章
- 面向对象的全套“企业微信”api接口的代码实现,网上太多“面向过程”微信api接口的代码,这个开源给需要的人用
有段时间没有写文章了. 一直以来,微信的热门是看得到的,很多人都需要与微信的api对接. 今天我这里就分享全套的企业微信api接口的代码. 关于微信api,网上已经有很多实现的了. 但是我今天之所以还 ...
- 01: 企业微信API开发前准备
目录:企业微信API其他篇 01: 企业微信API开发前准备 02:消息推送 03: 通讯录管理 04:应用管理 目录: 1.1 术语介绍 1.2 开发步骤 1.1 术语介绍返回顶部 参考文档:htt ...
- 总结的一些微信API接口
本文给大家介绍的是个人总结的一些微信API接口,包括微信支付.微信红包.微信卡券.微信小店等,十分的全面,有需要的小伙伴可以参考下. 1. [代码]index.php <?php include ...
- 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串
微信通过openID发送消息/后台post.get提交并接收数据 控制器:下面是post发送消息(微信不支持从前台发送数据,之前试过,报错,需要跨域,跨域的问题解决后还不行,最后发现之后后端提交 ...
- java访问微信接口发送消息
最近在开发activiti流程的时候有个需求:流程到达每个审批节点后,需要向该节点的审批人发送一个消息,提示有审批需要处理. 参考了一下微信的开发者文档和网络上的一些技术博客,现在记录一下.以便后续继 ...
- 使用微信api接口开发的框架
<?php/** * 微信公众平台API */class WeixinChat{ private $token; private $appid; private $appsecret; priv ...
- 微信公众号发送消息模板(java)
这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 public static JSONObject sendModelMessage(ServletContext context ...
- Python 微信公众号发送消息
1. 公众号测试地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 2. ...
- .Net Core 企业微信更新模版卡片消息
1.搭建回调服务器 可参考:https://www.cnblogs.com/zspwf/p/16381643.html进行搭建 2.编写代码 2.1接口定义 应用可以发送模板卡片消息,发送之后可再通过 ...
随机推荐
- css颜色,字体大小的设置
设置字体的颜色通过下面的代码: color : #f00; color是颜色的意思,color用来设置一个标签的前景色,表现出来也就是元素文本的颜色. 它的值,一般都是使用#加16进制的颜色值来表示. ...
- malloc/free与new/delete的区别与联系
相同点:(1)都是申请内存,释放内存,free和delete可以释放NULL指针:(2)都必须配对使用,这里的配对使用,可不能理解为一个new/malloc就对应一个delete/free,而是指在作 ...
- poj3162(树形dp+优先队列)
Walking Race Time Limit: 10000MS Memory Limit: 131072K Total Submissions: 5409 Accepted: 1371 Ca ...
- Qt的类:qfileinfogatherer
这篇文章中,探索Qt中的类qfileinfogatherer类,先给出私有类头文件.我们先想一想要形成一个信息采集者,需要什么?需要一个线程,当文件信息发生变化的时候,作为一个槽来接收信号. 先预备一 ...
- Oracle误删除数据和表的恢复办法包括truncate
在工作中我们操作数据库的时候经常会发生一个不该发生的问题:用户意外的删除一个非常重要的表或者是表中的数据而且没有备份,需要尽快的恢复,以下就是解决的办法: 主要是利用Oracle回收站的闪回特性ora ...
- less &进行选择判断css的样式
先说&在less写 .parent{ .child{} &.and{} }在css就是 .parent.child{}//父子关系 .parent.and{}//并关系 用到这个方法是 ...
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
pycharm运行TensorFlow警告:Your CPU supports instructions that this TensorFlow binary was not compiled to ...
- 关于IEDA中的字母与数字的坑
今天写一个demo,环境是在IDEA下写的,遇到一个关于字母与数字完全一样的坑 在jsp页面中有一个input是这样的 <input type="file" name=&qu ...
- win10操作系统 安装nodejs报2503错误解决方法
报该错误的原因是由于安装操作没有获得足够的管理权限导致. 在电脑左下角开始菜单[右键]选择"命令提示符(管理员)“ 敲入如下命令 msiexec /package 后面加你nodejs的本机 ...
- Linux 驱动——Button驱动7(Timer)消抖
button_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/f ...