企企提供两种openapi接入方式, 分别是openid接入和OAuth2接入,可以根据需要自行选择接入方式。
openid 接入
名词解释
-
openid:openid代表一个企业的一个用户身份,调用接口时需要带上openid,以用户身份请求接口, openid长期有效
-
callBackUrl:callbackUrl 是开发者用来接收企企提供的openid,callbackUrl支持GET请求,响应200,开发者可选择性的提供给企企,由企企管理员设置,用户授权后,我们的请求为
GET callbackUrl?openid={openid}&requestId={requestId}
调用openApi接口流程
使用openid接入调用openapi 接口流程大致分为3部分
- 获取密钥
- 获取openid
- 接口调用
获取密钥
密钥仅需要获取一次,开发者线下将应用名称提供给企企管理员,企企管理员收到应用名称后,将密钥线下发送给开发者。
应用名称:对接的外部应用名称,将显示在授权页面,下图中的‘云峰社区’为应用名称

秘钥示例:
accessKeyId=LKJSDAFJLSKDJFK // 拿到授权的秘钥id
secretAccessKey=vkDB632ibwjasdiufjVc6ebJVD+Inq //拿到授权的秘钥
获取openid
获取openid 需要用户先授权,授权只需要成功一次,授权地址:https://openapi.77hub.com/auth/openid?requestId={requestId}&accessKeyId={accessKeyId}&grantType={grantType}&redirectUrl={redirectUrl}
授权地址请求参数说明
| 参数名 | 是否必填 | 说明 | 获取方式 |
|---|---|---|---|
| requestId | 是 | 授权成功后,requestId会根据对应的 grantType响应到对应的url上 | 用户自己指定;格式为:数字+英文(A-Z,a-z,0-9),64位之内 ,例如 KLJOISUVMDIE9231JV |
| accessKeyId | 是 | 密钥Id | 从企企管理员那里获取到的accessKeyId |
| redirectUrl | 否 | 重定向地址,用于用户授权后重定向到redirectUrl | 调用者自己指定 ,例如 http://openapi.test.com |
| grantType | 否 | normal模式(默认),code模式 ,任选其中一种模式 | 见下 |
说明:多次请求同一个企业的同一个用户授权,获取到的openid不变
normal模式获取openid
-
normal模式:开发者在用户授权前向企企管理员提供callbackUrl,在用户授权后,企企服务端回调开发者提供的callBackUrl, 将openid和requestId响应到callbackUrl,然后前端重定向到redirectUrl
normal模式授权流程图:

- 假设开发者构建的授权链接是:https://openapi.77hub.com/auth/openid?requestId=6ca40cade0f4b77a7873d76411229916&accessKeyId=AKIAYOSUOUKK3D7LKOVS&redirectUrl=https://yunfeng.77hub.com/authLogin&grantType=normal
- 假设开发者提供的callbackUrl是 : https://openapi.77hub/openid
- 在用户授权完成后企企服务端发起GET请求: https://openapi.77hub/openid?openid=88caf24007444cd1b90fbf2&requestId=6ca40cade0f4b77a7873d76411229916, 前端重定向到:https://yunfeng.77hub.com/authLogin
code模式获取openid
- code模式:用户授权后,前端会重定向到redirectUrl,code和requestId作为redirectUrl的参数,开发者根据code调用企企提供的 v1/code 接口获取openid, code使用后即失效,否则有效期为24小时
code 模式授权流程图:

-
在用户授权完成后前端重定向到:https://yunfeng.77hub.com/authLogin?code=5db33b05cebe470d8bb74a65506fb0df&requestId=6ca40cade0f4b77a7873d76411229916
根据重定向返回的code 获取openid