【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息

简介: 【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:


今天来了解下企业微信中,如何利用API主动给用户发应用消息。

0. 接口说明

0.1 发送消息接口

请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

在请求地址里,其实就需要一个 ACCESS_TOKEN

  • 接口返回示例
{
  "errcode" : 0,
  "errmsg" : "ok",
  "invaliduser" : "userid1|userid2",
  "invalidparty" : "partyid1|partyid2",
  "invalidtag": "tagid1|tagid2",
  "unlicenseduser" : "userid3|userid4",
  "msgid": "xxxx",
  "response_code": "xyzxyz"
}
  • 发送消息的格式,以文本消息为例
{
   "touser" : "UserID1|UserID2|UserID3",
   "toparty" : "PartyID1|PartyID2",
   "totag" : "TagID1 | TagID2",
   "msgtype" : "text",
   "agentid" : 1,
   "text" : {
       "content" : "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看<a href=\"http://work.weixin.qq.com\">邮件中心视频实况</a>,聪明避开排队。"
   },
   "safe":0,
   "enable_id_trans": 0,
   "enable_duplicate_check": 0,
   "duplicate_check_interval": 1800
}
  • 支持的发送消息类型

  • 接口使用限制
  • 调用建议:大部分企业应用在每小时的0分或30分触发推送消息,容易造成资源挤占,从而投递不够及时,建议尽量避开这两个时间点进行调用。
  • 频率限制:每应用不可超过账号上限数*200人次/天(注:若调用api一次发给1000人,算1000人次;若企业账号上限是500人,则每个应用每天可发送100000人次的消息)。每应用对同一个成员不可超过30次/分钟,1000次/小时,超过部分会被丢弃不下发

0.2 获取 Access_token接口

请求方式: GET(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
  • 返回结果
{
   "errcode": 0,
   "errmsg": "ok",
   "access_token": "accesstoken000001",
   "expires_in": 7200
}
  • 注意事项
  • 每个应用有独立的secret,获取到的access_token只能本应用使用,所以每个应用的access_token应该分开来获取
  • 开发者需要缓存access_token,用于后续接口的调用(注意:不能频繁调用gettoken接口,否则会受到频率拦截)。当access_token失效或过期时,需要重新获取。
  • access_token的有效期通过返回的expires_in来传达,正常情况下为7200秒(2小时),有效期内重复获取返回相同结果,过期后获取会返回新的access_token。
  • access_token至少保留512字节的存储空间。

1. 实践

现在有很多可以使用的开源库来简化以上接口的调用,不用自己去获取和缓存access_token,不用自己去组装请求链接等,非常方便。

官方文档中收集了一些针对企业微信API的开源封装:

我选取了其中的 corpwechatbot,号称开箱即用,一行代码实现消息推送

1.1 corpwechatbot,一行代码实现消息推送

1.1.1 安装

pip install -U corpwechatbot

1.1.2 示例Demo

直接copy这段代码,修改里面的corpid, corpsecret和agentid:

import cptools
from corpwechatbot.app import AppMsgSender
# from corpwehcatbot import AppMsgSender  # both will work
app = AppMsgSender(corpid='xxx',  # 你的企业id
                   corpsecret='P-xxx',  # 你的应用凭证密钥
                   agentid='1000002', # 你的应用id
                   log_level=cptools.INFO, # 设置日志发送等级,INFO, ERROR, WARNING, CRITICAL,可选
                #    proxies={'http':'http:example.com', 'https':'https:example.com'}  # 设置代理,可选
                   )   
# 如果你在本地配置添加了企业微信本地配置文件,也可以直接初始化AppMsgSender,而无需再显式传入密钥参数
# app = AppMsgSender()
app.send_text(content="你好,我是同学小张!")

点击运行,毫无意外地,发生了意外:

1.1.3 配置IP

在企业微信管理后台 —> 应用管理 —> 自己的应用界面,划到页面底部。

将你服务的IP填入到企业可信IP中。

重新运行示例Demo,发送成功!

1.1.4 看一眼源码

如果看一下源码的话,你就会发现,它其实就是将以上获取 Access Token的接口和发送消息的接口进行了一层封装,并进行了相应的缓存。

2. 参考

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关文章
|
3天前
|
安全 API 开发工具
微信开发:API接口与ipad协议的深度比较及最佳选择
微信开发:API接口与ipad协议的深度比较及最佳选择
|
3天前
|
API Android开发 iOS开发
个人微信开发API协议接口
个人微信开发API协议接口
|
3天前
|
API 开发工具
企业微信api接口调用-触发企业微信推送会话列表
企业微信api接口调用-触发企业微信推送会话列表
|
3天前
|
API 开发工具
企业微信api接口调用-通过手机号或微信好友添加客户
企业微信api接口调用-通过手机号或微信好友添加客户
|
3天前
|
API 开发工具
企业微信api接口调用-触发推送企业微信联系人列表
企业微信api接口调用-触发推送企业微信联系人列表
|
3天前
|
API 开发工具
企业微信api接口调用-触发推送企业微信微信好友
企业微信api接口调用-触发推送企业微信微信好友
|
3天前
|
API
企业微信api接口调用-企业微信好友收发消息
企业微信api接口调用-企业微信好友收发消息
|
3天前
|
Java API 开发工具
企业微信api,企业微信sdk接口java调用源码
企业微信api,企业微信sdk接口java调用源码
|
IDE 开发工具 Android开发
Python开发神器PyCharm,体验下吧
Python开发神器PyCharm,体验下吧
151 0
Python开发神器PyCharm,体验下吧
|
存储 监控 IDE
猪行天下之Python基础——1.3 Python开发IDE之PyCharm(下)
内容简述: 1、为什么要使用IDE? 2、PyCharm的下载安装 3、PyCharm的基本使用 4、PyCharm程序调试 5、共用全局的Python解释器
230 0