最近给公司测试组内部开发一个记账小工具,当账目出现问题的时候需要发送消息通知大家,前期主要采用的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接口发送消息的更多相关文章

  1. 面向对象的全套“企业微信”api接口的代码实现,网上太多“面向过程”微信api接口的代码,这个开源给需要的人用

    有段时间没有写文章了. 一直以来,微信的热门是看得到的,很多人都需要与微信的api对接. 今天我这里就分享全套的企业微信api接口的代码. 关于微信api,网上已经有很多实现的了. 但是我今天之所以还 ...

  2. 01: 企业微信API开发前准备

    目录:企业微信API其他篇 01: 企业微信API开发前准备 02:消息推送 03: 通讯录管理 04:应用管理 目录: 1.1 术语介绍 1.2 开发步骤 1.1 术语介绍返回顶部 参考文档:htt ...

  3. 总结的一些微信API接口

    本文给大家介绍的是个人总结的一些微信API接口,包括微信支付.微信红包.微信卡券.微信小店等,十分的全面,有需要的小伙伴可以参考下. 1. [代码]index.php <?php include ...

  4. 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串

    微信通过openID发送消息/后台post.get提交并接收数据   控制器:下面是post发送消息(微信不支持从前台发送数据,之前试过,报错,需要跨域,跨域的问题解决后还不行,最后发现之后后端提交 ...

  5. java访问微信接口发送消息

    最近在开发activiti流程的时候有个需求:流程到达每个审批节点后,需要向该节点的审批人发送一个消息,提示有审批需要处理. 参考了一下微信的开发者文档和网络上的一些技术博客,现在记录一下.以便后续继 ...

  6. 使用微信api接口开发的框架

    <?php/** * 微信公众平台API */class WeixinChat{ private $token; private $appid; private $appsecret; priv ...

  7. 微信公众号发送消息模板(java)

    这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 public static JSONObject sendModelMessage(ServletContext context ...

  8. Python 微信公众号发送消息

    1. 公众号测试地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 2. ...

  9. .Net Core 企业微信更新模版卡片消息

    1.搭建回调服务器 可参考:https://www.cnblogs.com/zspwf/p/16381643.html进行搭建 2.编写代码 2.1接口定义 应用可以发送模板卡片消息,发送之后可再通过 ...

随机推荐

  1. struts拦截器的知识

    如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了str ...

  2. Ubuntu 16.04 上安装 MySQL 5.7 教程

    介绍 MySQL 是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装.它使用关系数据库和SQL(结构化查询 ...

  3. vue路由的懒加载

    一.懒加载 也叫延迟加载或者按需加载,即在需要的时候进行加载,   二.为什么要使用懒加载 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要 ...

  4. Selenium常用API详解介绍

    转至元数据结尾   由 黄从建创建, 最后修改于一月 21, 2019 转至元数据起始   一.selenium元素定位 1.selenium定位方法 2.定位方法的用法 二.控制浏览器操作 1.控制 ...

  5. mknod语法

    1.语法       mknod [选项]  设备名  设备类型  主设备号 次设备号   2.选项参数列表 选项 说明 --version 显示命令版本信息 --help 显示帮助信息 -m | - ...

  6. pycharm安装pip报错的处理办法

    这几天在用pycharm的时候,发现安装软件的时候报 module 'pip' has no attribute 'main' ,后来综合网上的办法以及分析错误提示,原因是在于pycharm安装目录下 ...

  7. golang 实现文件传输小demo

    获取文件信息需要用到os. Stat接口,发送文件前开启接收者(服务端),启动客户端先发送文件名给接收者,接收者收到文件名返回确认信息"ok",才读取本地文件 发送给接收者. 发送 ...

  8. MS SQL 全局临时表的删除

    本来已经搜索到怎么删除了 如下: IF OBJECT_ID( 'tempdb..##TEMP_COPTD') IS NOT NULL Begin DROP TABLE ##TEMP_COPTD End ...

  9. EMMET 的HTM自动生成

    { // Custom snippets definitions, as per https://github.com/emmetio/emmet/blob/master/snippets.json ...

  10. 自定义注解(spring)

    终于有时间可以在这里写一篇博文了,今天写一下我在项目中用到的自定义注解,就是在每次操作项目的时候,想把它的操作加在我的数据库中,简单地说就是日志管理,这些东西都写完之后,我就问我自己,问什么要自定义注 ...