首页 > 编程知识 正文

企业微信api接口调用,企业微信api文档

时间:2023-05-04 01:11:34 阅读:231538 作者:2456

所有的接口需使用HTTPS协议、JSON数据格式、UTF8编码。

接口说明格式如下:

请求方式:GET/POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
数中标注大写的单词,表示为需要替换的变量

请求包体: ... 参数说明: ... 权限说明:(标明接口的使用范围,开发者应特别留意调用场景。比如,同步通讯录的接口必须要用通讯录同步助手的access_token) ... 返回结果: ... 参数说明: ... 基本概念介绍:

corpid(企业 唯一)——需要有管理员权限;
userid(成员id 唯一)
部门id(部门 唯一)
tagid(标签id 唯一)
agentid(应用id 唯一)
secret(企业应用里面用于保障数据安全的“钥匙”,每一个应用都有一个独立的访问密钥)
access_token(是企业后台去企业微信的后台获取信息时的重要票据,由corpid和secret产生。所有接口在通信时都需要携带此信息用于验证接口的访问权限)

接口调用流程:

企业管理员—获取access_token—调用具体的业务api接口

如何获取access_token:

1.到企业微信管理后台—>我的企业—>最下角的企业id:(如:wwcdd39616ea662af5) 2.选择管理后台—>应用管理——>选择你要获取的应用,打开;复制Secret对应的内容(如:j8kmy0EXjk24XJBNS2K2NhxGUpxosOzGEZQ1AaV32KU)

https://qyapi.weixin.qq.com/cgi-bin/gettoken(请求方式:GET)
corpid(如:wwcdd39616ea662af5)
corpsecret(如:j8kmy0EXjk24XJBNS2K2NhxGUpxosOzGEZQ1AaV32KU)

返回状态:status: HTTP/1.1 200 OKconnection: closeerror-code: 0error-msg: okcontent-type: application/json; charset=UTF-8content-length: 277```javascript{"errcode":0,"errmsg":"ok","access_token":"5vbmVa5ZBHU1IzglkBG5689djnp95DIaoAqtq-Bgnf0fjbZ0fs9kTHGctcjJuuzhh4yAwxWRsko9_Q_NHU0A1mtHEfmlKeXXQa1k0PIySay_OLKR06_xobf4Li3uIBmwci54XtKeNTPp7yHSXEmSGkRV7MYZWMhowfmsz1-8qqwyGlN_qwa1kKOzgcAPCymU-_eVmGzs8RVeAgrZdFjb1A","expires_in":7200} 企业微信的回调配置

什么时候需要回调服务?
在集成企业微信与内部系统时,我们往往需要搭建一个回调服务。
进行回调服务的时候;可以实现:
1.自定义丰富的服务行为(如:在企业微信—管理后台—签到打卡应用;设置对用户的信息的自动回复这些)如图:

2.可以及时获取到状态变化:比如,通讯录发生变化时,不需要定时去拉取通讯录对比,而是实时地获取到变化的通讯录结点,进行同步。

回调服务需要哪些配置

配置回调服务,需要有三个配置项,分别是:URL, Token, EncodingAESKey。
2.1 URL为回调服务地址;
2.2 Token用于计算签名;
2.3 EncodingAESKey用于消息内容加密;

回调服务需要实现哪些功能

配置回调服务时,需要能同时支持HttpGet以及HttpPost两种能力,
企业微信会先判断URL服务是否具备解析企业微信推送消息的能力。
具体方式是,企业微信往URL服务上发一条Get请求带签名及密文参数到URL服务上,如果URL服务检查签名通过,并能正确返回密文参数对应的明文字符串,则验证通过。此时在企业微信的配置就开始生效。
后续的业务请求(比如应用菜单的点击事件,用户消息等),都会类似的方式(签名+密文)向服务URL推送消息。URL服务验证签名通过后,需要将POST数据解密,就可以得到对应的业务消息明文。

3.1 回调服务支持Http Get请求验证URL有效性(不是很清晰,接口调试不清晰怎么使用)
假设企业的接收消息的URL设置为http://api.3dept.com。
企业管理员在保存回调配置信息时,企业微信会发送一条验证消息到填写的URL

请求方式:GET
请求地址:http://api.3dept.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS&timestamp=13500001234&nonce=123412323&echostr=ENCRYPT_STR
参数说明:
参数 类型 说明
msg_signature String 企业微信加密签名,msg_signature计算结合了企业填写的token、请求中的timestamp、nonce、加密的消息体
timestamp Integer 时间戳。与nonce结合使用,用于防止请求重放攻击。
nonce String 随机数。与timestamp结合使用,用于防止请求重放攻击。
echostr String 加密的字符串。需要解密得到消息内容明文,解密后有random、msg_len、msg、receiveid四个字段,其中msg即为消息内容明文

回调服务需要作出正确的响应才能通过URL验证,具体操作如下:

对收到的请求,解析上述的各个参数值(参数值需要做Urldecode处理) 根据已有的token,结合第1步获取的参数timestamp,
nonce, echostr重新计算签名,然后与参数msg_signature检查是否一致,确认调用者的合法性。计算方法参考:消息体签名检验
解密echostr参数得到消息内容(即msg字段)
在1秒内响应GET请求,响应内容为上一步得到的明文消息内容(不能加引号,不能带bom头,不能带换行符)

3.3 获取企业微信服务器的ip段

企业微信在回调企业指定的URL时,是通过特定的IP发送出去的

请求方式:GET(HTTPS)
请求地址:
https://qyapi.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN
参数:access_token(必须);调用接口的凭证

接口实例:
第一步:根据企业corpid与应用钥匙cropsecret获取到access_token
第二步:根据上述的请求地址与得到的access_token参数值进行调用

返回的结果值:

调用接口 获取企业微信API域名IP段
请求地址 https://qyapi.weixin.qq.com/cgi-bin/get_api_domain_ip
返回状态
status: HTTP/1.1 200 OK
connection: close
error-code: 0
error-msg: ok
content-type: application/json; charset=UTF-8
content-length: 363
返回结果 {“ip_list”:[“182.254.11.176”,“182.254.78.66”,“121.51.86.66”,“101.227.162.152”,“101.226.49.50”,"101.89.18.158 ",“117.184.242.103”,"183.192.202.172 ",“223.167.84.62”,“140.207.189.106”,“116.128.138.160”,“121.51.130.85”,"121.51.140.149 ",“183.3.234.106”,"183.3.224.149 ",“58.251.80.106”,“157.255.173.237”,“203.205.255.254”,“203.205.219.41”],“errcode”:0,“errmsg”:“ok”}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。