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

接口说明格式如下:

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

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

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

  1. 接口调用流程:

企业管理员—获取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 OK
connection: close
error-code: 0
error-msg: ok
content-type: application/json; charset=UTF-8
content-length: 277```javascript
{"errcode":0,
"errmsg":"ok",
"access_token":"5vbmVa5ZBHU1IzglkBG5689djnp95DIaoAqtq-Bgnf0fjbZ0fs9kTHGctcjJuuzhh4yAwxWRsko9_Q_NHU0A1mtHEfmlKeXXQa1k0PIySay_OLKR06_xobf4Li3uIBmwci54XtKeNTPp7yHSXEmSGkRV7MYZWMhowfmsz1-8qqwyGlN_qwa1kKOzgcAPCymU-_eVmGzs8RVeAgrZdFjb1A",
"expires_in":7200} 

企业微信的回调配置

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

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

  2. 回调服务需要哪些配置

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

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

配置回调服务时,需要能同时支持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”}

企业微信服务端API的理解(开发指南部分)相关推荐

  1. c#调用企业微信服务端API发送消息和图片

    1.首先获得企业微信的企业ID 2.获得企业微信里面的建立的小程序的APPID和Secret 以上不会的自行百度. 3.建立共用类QYWeixinHelper public class QYWeixi ...

  2. 魔方APP项目-01-移动端开发相关概念、移动端自适配、元信息(meta)、开发准备、移动端项目搭建(模拟器调试)、APICloud(APICloud 前端框架,获取服务端API接口)

    一.移动端开发相关概念 1.APP类型 ①.Native APP Native APP又称原生APP,就是我们平时说的手机应用软件. 原生APP 是针对IOS.Android.Windows等不同的手 ...

  3. 微信服务端开发必备技能——内网穿透

    前言    我们在做微信服务端开发的时候,经常会碰到需要调试,但是微信回调必须要外网环境,这时候只能打到服务器上了:那有没有什么办法是可以直接在本地调试呢?内网穿透可以让我们在本地进行调试. 什么是内 ...

  4. C#开发BIMFACE系列19 服务端API之获取模型数据4:获取多个构件的共同属性

    系列目录     [已更新最新开发文章,点击查看详细] 在前几篇博客中介绍了一个三维文件/模型包含多个构建,每个构建又是由多种材质组成,每个构建都有很多属性.不同的构建也有可能包含相同的属性. 上图中 ...

  5. C#开发BIMFACE系列20 服务端API之获取模型数据5:批量获取构件属性

    系列目录     [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列18 服务端API之获取模型数据3:获取构件属性>中介绍了获取单个文件/模型的单个构建的属性,本篇介绍 ...

  6. C#开发BIMFACE系列18 服务端API之获取模型数据3:获取构件属性

    系列目录     [已更新最新开发文章,点击查看详细] 本篇主要介绍如何获取单文件/模型下单个构建的属性信息. 请求地址:GET https://api.bimface.com/data/v2/fil ...

  7. C#开发BIMFACE系列14 服务端API之批量获取转换状态详情

    系列目录     [已更新最新开发文章,点击查看详细] 上一篇<C#开发BIMFACE系列13 服务端API之获取转换状态>中介绍了根据文件ID查询单个文件的转换状态. 本文介绍批量获取转 ...

  8. C#开发BIMFACE系列9 服务端API之获取应用支持的文件类型

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE最核心能力之一是工程文件格式转换.无需安装插件,支持数十种工程文件格式在云端转换,完整保留原始文件信息.开发者将告别原始文件解析烦 ...

  9. part1:企业微信发送消息API调试

    1.知识准备 HTTP 访问原理 HTTP 协议则是web服务器和web客户端达成的一种可靠的数据传输协议 确保数据在传输的过程当中不会损坏或者产生混乱 WEB 客户端和服务器 Web内容都是存储在W ...

最新文章

  1. Binary Differences
  2. 一道简约而不简单的算法题——数据流的中位数 | 附动画解析
  3. 美团提出基于隐式条件位置编码的Transformer,性能优于ViT和DeiT
  4. 过滤器在图纸上的符号_终于找全了,施工图纸上那一堆难记的符号,赶紧收藏!...
  5. Quartz.Net 调度框架配置介绍
  6. C++类模板(二)用类模板实现可变长数组
  7. 我所理解的RESTful Web API [设计篇]
  8. 我国物联网环境尚未成熟 传感器面临机遇
  9. php 获取路由参数,路由参数 · ThinkPHP5.0完全开发手册 · 看云
  10. [css] 使用rem的优缺点是什么?和使用百分比有什么区别?
  11. spyder python下载_Spyder python下载
  12. selenium自动化学习--截取长图的方法
  13. 关于阿里巴巴编程规范
  14. 辽宁大连最好的计算机大学排名,2020年大连市最好大学排行榜:20所高校上榜,东北财经大学居第二...
  15. 如何简单理解光圈大小对手机摄影的影响?
  16. MarkDown生成目录索引
  17. js 12:00时间加上半小时,返回小时和分钟
  18. php腾讯云直播的录制
  19. 网易运营微专业_用户运营
  20. 怎么查询MySQL的安装路径?

热门文章

  1. 康乐忆享|志愿者心得精选——周子艺
  2. 澳洲支付服务商RoyalPay微信支付宝APP支付对接
  3. 报错OSError: [Errno 22] Invalid argument 的一种解决方法
  4. ie 报 SCRIPT1002: 语法错误
  5. 来吧!接受Kotlin 协程--线程池的7个灵魂拷问
  6. 罗技蓝牙鼠标连接电脑
  7. html 圆圈图表插件,10款HTML5动画图表插件
  8. VirtureBox虚拟机另类复用方法
  9. 解决搜狗截图屏幕放大问题
  10. 要学的东西太多,自己能力不足,很焦虑怎么办