前言
有些场景下需要给自己的微信推送数据,达到通知的效果。这里的实现有很多,比如server酱等相关第三方平台,但是会随着腾讯的相关协议波动,并且有时候简短的消息需要跳转相关网页查看详情,有些许的不便,于是今天带来一种解决的办法,也就是替代品。结合服务器能做到不错的效果,也可以与合作的同学实现数据共享。
使用效果:
很明显的可以看出来,毕竟是第三方平台,不便于自己使用。
而使用企业微信的api我们可以给自己私人推送一些自己想要的数据或者是通知。也可以拉入自己小组的其他朋友,以实现数据共享。
实现步骤
注册企业微信
注册后需要用到一些参数:
- 企业ID
- 应用id
- 应用密匙
访问接口
根据官方的文档我们可以清晰的看到使用步骤,这里只做部分的说明和实现。
接口定义
应用支持推送文本、图片、视频、文件、图文等类型。
请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
参数说明:
参数 | 是否必须 | 备注 |
---|---|---|
access_token | 是 | 接口凭证(有时效性) |
消息类型
文本消息
post请求data示例:
1 | { |
这里我们可以看到content中是支持a标签的,换行用转义过的\n,大概效果如下:
请求参数含义:
参数 | 是否必须 | 参数说明 |
---|---|---|
touser | 否 | 成员ID列表(特殊情况:指定为@all,则向关注该企业应用的全部成员发送) |
toparty | 否 | 部门ID列表 |
totag | 否 | 标签ID列表 |
msgtype | 是 | 消息类型 |
agentid | 是 | 企业应用的id, int型 |
content | 是 | 消息内容,最长不超过2048个字节,超过将截断(支持id转译) |
safe | 否 | 表示是否是保密消息,0表示可对外分享,1表示不能分享且内容显示水印,默认为0 |
enable_duplicate_check | 否 | 表示是否开启重复消息检查,0表示否,1表示是,默认0 |
duplicate_check_interval | 否 | 表示是否重复消息检查的时间间隔,默认1800s,最大不超过4小时 |
这里需要注意的是,touser、toparty、totag不能同时为空
其他消息
支持的消息类型有:
文本卡片消息展现 :
图文消息展现:
markdown示例效果:
任务卡片消息展现 :
等等等等。
值得注意的是部分消息普通微信无法查看,例如markdown类型,需要使用企业微信才可以查看,失去了我们图求的便利性,故放弃。
实例
这里放上编写的代码实例,简单调用了text类型的发送,这里的小米运动的实现可以参照之前的博文。
1 | import requests |
运行结果
根据微信企业微信的api文档,我们可以做很多的事情,例如定时任务,收到指定关键字回复消息等,可以根据服务器完美的融合。
具体请参照企业微信官网开发文档:
注意事项
有时候可能根据api返回的json错误码说明,仍然不知道自己的参数在哪里出错,此时可以在接口请求url里加上debug=1参数。
然后根据返回的实例,在微信的错误码查询工具中根据hint码值查看相关错误。