【个人开发】通过企业微信实现消息推送到个人微信

1. 背景

个人有个消息推送到任务,一直在飞书上跑,消息触达率太低,寻思着尝试用一些方法,将消息推送到微信。

2. 写在前面

坑1:寻思着企业微信有机器人,将机器人所在群拉上微信号,结果,企业微信不允许,外部群的功能不能有机器人。难搞!

坑2:去github上找项目,找到了个叫itchat的项目,可以实现给微信发消息,尝试一下,问题出在于现在的微信号不能用网页登陆。微信是真的猛,把路都堵死了

坑3:既然微信发不了消息,公众号总可以吧。给公众号开通了开发者权限,研究了一通。结论,部分接口服务号无权限调用,只有订阅号才可以,无语。

最后,回过头去研究企业微信,找到了一种平替的方法。效果如下:
在这里插入图片描述

3. 步骤

3.1 准备提前准备自己的企业微信

(此步骤省略,不懂的自己度娘)

3.2 建立应用

流程:企业微信网页版首页 >> 应用管理 >> 自建【模块】>> 创建应用。
输入相应的应用名称及头像即可。
在这里插入图片描述

3.3 消息推送相关api文档

api文档传送门:发送应用消息

3.3.1 准备corpid、corpsecret、agentId

corpid说明:
位置:企业微信网页版首页 >> 我的企业。找到企业ID,即:corpid。
corpsecret说明:
位置:企业微信网页版首页 >> 应用管理 >> ${自己刚创建的应用}。
查看,并发送相应的secret。如下图。
在这里插入图片描述
agentid说明:上述secret上面的agentid便是我们需要的agentid。

3.3.2 兑换access_token

通过企业微信提供的调试工具,方便操作。从开发者中心进入。
在这里插入图片描述
在下面填入corpid、corpsecret就可以。
在这里插入图片描述

3.3.3 发送应用消息

填入相应的access_token及消息体。如下。
在这里插入图片描述
这里有个问题,touser、toparty、totag三个参数应该怎么填?
研究了一下,user其实就是你的企业微信账号。

位置:通讯录 >> 成员。
在这里插入图片描述
toparty与totag,没研究。先pass。可直接不填。
修改完touser后,就可以直接调接口了。
如果出现报错,可以通过下面传送门查询:企微Error Code查询
本以为至此,大功告捷,没想到,把相应的接口,用postman调,接口给我来了个60020的报错。
在这里插入图片描述
大概原因是,需要添加白名单。

3.4 IP配置白名单

3.4.1 配置受信域

位置:首页 >> 应用管理 >> ${自己刚创建的应用}。
在这里插入图片描述先到「网页授权及JS-SDK」配置可信域名。
小白的开发者没有可信域名,实在难受。
找了很久,找到了一种白嫖的方法。
感谢小袁同学:配置受信域名方法
貌似现在阿里云的用不了,我用的是华为云,华为云具体方法在小袁同学的抖音号,需要的话,自己移步抖音。

3.4.2 配置ip白名单

点击上述图片的「企业可信IP」,输入你的ip,即可。

本以为至此就大功告捷。结果用postman一调,还有问题。
在这里插入图片描述
大概原因是,postman是第三方工具,走的是postman的ip。那咋们自己手撸代码本地调。

3.5 python本地调用api

demo如下:

import requests
access_token="${ACCESS_TOKEN}"
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?debug=1&access_token=%s" % (access_token)
data = {
	"touser": "${USERNAME}",
	"toparty": "",
	"totag": "",
	"msgtype": "text",
	"agentid": ${AGENTID},
	"text": {"content": "hello world!"},
	"safe": 0,
	"enable_id_trans": 0,
	"enable_duplicate_check": 0
}
response = requests.post(url=url, json=data)
print(response.text)

如果出现下面这种报错:
在这里插入图片描述
一方面检查一下你的json格式,还有一种原因,post的时候,将参数传给json即:json=data、而非data=data。
原因可以参考这位博主:企业微信机器人python脚本执行报错-‘errcode‘: 40008, ‘errmsg‘: ‘Warning: wrong json format. invalid message type
修改一下,终于可以收工了T T。

参考文章:
企业微信开发文档
企业微信Error Code查询
配置受信域名方法
企业微信机器人python脚本执行报错-‘errcode‘: 40008, ‘errmsg‘: ‘Warning: wrong json format. invalid message type

  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值