最近给公司测试组内部开发一个记账小工具,当账目出现问题的时候需要发送消息通知大家,前期主要采用的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. selenium中iframe的切换

    #第一层是默认层, 第二层是新建标签的层,第三层是百度的那层from selenium import webdriverimport timedriver=webdriver.Chrome()driv ...

  2. CSS&JS小结

    回顾:html: 作用:展示 文件标签: <html> <head> <title></title> </head> <body> ...

  3. ubuntu安装ssh-service出现无法依赖的解决

    (1)首先先确认下ubuntu系统是否已经安装ssh(通常ubuntu中默认是安装的) 通过命令进行查看:$dpkg -l | grep ssh这里我们可以看到,系统显示已经安装了openssh-cl ...

  4. 基于ZYNQ的双核启动与通信问题解决

    1    处理器间的通信 为AMP 设计创建应用之前,您需要考虑应用如何进行通信(如有需要).最简单的方法是使用片上存储器.Zynq SoC 配备256KB 的片上SRAM,可从以下四个源地址进行访问 ...

  5. key单片机按键抖动

    //write by:cyt //Time:2017-2-10 //Porject Name:key shake_destory #include<reg51.h> #define GPI ...

  6. 不使用Visual Studio开发ASP.NET MVC应用(下篇)

    书接上回! 前文“纯手工”.彻底抛弃Visual Studio,制作了一个ASP.NET MVC应用,运行起来还不错,项目目录.源代码.web.config等所有东西都已经做到“最简”,除去了Visu ...

  7. ansible 下lineinfile详细使用

    ansible 下lineinfile详细使用 时间 2016-12-13 18:02:31  51CTO推荐博文 原文  http://zouqingyun.blog.51cto.com/78224 ...

  8. VBO最佳实践

    VBO的大小 一个VBO应该多大? 你可以创建一个很小的VBO,但最佳方案是把很多对象放到一个VBO里面,这样的话可以减少调用gl函数的数量,比如glBindBuffer.glVertexPointe ...

  9. Golang中的函数

    函数 在go语言中,函数的基本组成为:关键字func.函数名.参数列表.返回值.函数体和返回语句 函数的定义 定义一个最简单的加法函数 func Add(a int,b int)(ret int,er ...

  10. jupyter notebook添加虚拟环境

    原本以为,当进入虚拟环境之后,再运行jupyter notebook应该是这个环境下的jupyter,比如我默认创建一个文件,这个文件调用的编译器应该是这个虚拟环境中的编译器,实际上并不是 当你进入j ...