通过企业微信API接口发送消息(通过postman或者企业微信开发者中心《服务端API调试工具》)
如何创建一个与企业后台互动的自建应用
添加自建应用
- 登录企业微信管理后台->应用管理->自建下创建应用,填写必要的logo,应用名称,在可见范围中选择部门/成员
- 获取应用的相关信息agentid和secret;应用里
- 创建完毕可出现在选择了可见范围的成员的企业微信终端上。
使用Postman调试api
以发消息为例说明如何调试api接口
调用api的过程,其实就是发送http请求给企业微信后台,在正式开发前,我们可以使用postman模拟http请求调试api。
请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
- 获取企业微信corpid值;
-
获取access_token
access_token是应用调用api的凭证,由corpid和corpsecret换取请求方式:GET(HTTPS) 请求URL:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
-
构造消息体(注意是什么请求方式)
可发送文本、图片、视频等多种类型的应用消息,这里以最简单的文本消息为例:(注意修改touser、agentid为自己想要的接收者userid列表、应用id){ "touser": "HuangLong", "msgtype": "text", "agentid": 1000002, "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 }
- 发送消息
如下图示,以上面两步得到的access_token和消息体为参数,在postman中发送post请求即可
如果发送成功,在接收者的企业微信中的相应应用里,会收到一条文本消息。
常见报错:
错误码:40001
不合法的secret参数,常见的原因如下:
1) 调用接口传参问题,实际没有传入到secret和corpid参数。
2) 传入的企业corpid与secret不匹配,比如重置了应用的secret,但应用程序仍用旧的secret调用。
3) 应用已经停用。
错误码:40003
不合法的UserID。确认:
1)有效的UserID需要满足:长度1~64字符,由英文字母、数字、中划线、下划线以及点号构成。
2)除了创建用户,其余使用UserID的接口,还要保证UserID必须在通讯录中存在。
3)企业内部自建应用,userid使用明文userid,第三方应用则需要使用密文userid。
4) 已离职或已删除成员,userid会从通讯录中移除,userid无效
5) 接口文档要求请求方式为POST请求,实际调用中使用GET请求,导致UserID无效。
错误码:40014
access_token参数错误。确认:
1) access_token需要在有效期内调用,失效了就是会提示token非法。可以重新获取一次access_token解决
2) openapi解析不到传入的access_token,可以先检查入参是否存在非法字符,导致无法解析access_token。
3) access_token对应的应用类型不匹配,比如小程序登入流程,使用了是非小程序应用的access_token。
4) token类型用错,token分为access_token suite_access_token 和provider_access_token三种,接口对应的access_token取值是不一致的,参数名也不一样。需要确认token类型。
错误码:60020
不安全的访问IP。请根据调用的应用类型分别按如下方法确认:
1)若调用者是企业自建应用或通讯录同步助手,请确认该IP是本企业服务器IP,并已经配置到应用详情的“企业可信IP”项目中。第三方服务商IP不能调用。
2)若调用者是第三方应用或服务商代开发应用,请确认该IP已经配置到“服务商管理后台”-“服务商信息”-“基本信息”-“IP白名单”。
3) 配置完可信IP之后,需要1分钟后才生效。
配置企业可信IP:应用管理 - 点击应用 - 企业可信IP
错误码:81013
UserID、部门ID、标签ID全部非法或无权限。一般有以下两种原因:
1)成员、部门或标签已被删除,此种情况需要调整调用接口的接收人参数。
2)成员、部门或标签被移出应用的可见范围,可在管理端将接收人添加到应用的可见范围内。
参考文档:
https://www.cnblogs.com/longlong2000/p/14450026.html
https://www.cnblogs.com/mengyu/p/10073140.html
https://developer.work.weixin.qq.com/document/path/90664