钉钉开发文档

概述

更新时间: 2018-6-27

通过本小节的阅读,您可以理解在企业管理员开通您的应用之时/之后,应用获取到开通企业基础信息的两种流程。

名词解释:
回调 AccessToken SuiteTicket

正式应用的开通,与回调协议强相关(测试应用可降级)。您需要:
①为应用设置好回调URL,并验证回调有效性,用于后续接收钉钉的事件推送。
接收SuiteTicket,持久化下来,用以计算签名,签名用于最终获取AccessToken。
③处理授权开通应用事件,获取到开通企业的corpId,持久化下来,用于判断企业是否已开通应用。

温馨提示:
上述①②③中涉及到的回调可以参考QuickStart(JAVA)CallBackController,快速调通回调以及接收数据。

另外,通过下面内容中您可以了解到,由于通过开通事件来获取企业信息可降级为后续通过钉钉服务端API获取,以及suiteTicket只有在正式应用中才会真正启用校验,因此即便您在测试应用中不设置回调URL、不验证回调的有效性、不处理回调事件或者处理回调事件失败,也能达到开通应用并获取到企业信息和用户身份的目标。因此建议您在快速体验时可以先选择测试应用,并且可不设置回调地址。

企业授权开通应用事件

此事件用于通知应用“哪个组织开通了本应用”,应用此时必须快速异步地初始化企业信息。

image.png

当企业管理员开通您开发的应用时,钉钉会把开通的企业标识"corpId"给推送下来,此推送称之为开通事件。应用应该把corpId持久化到数据库。开发者必须立即发送(1秒内)成功处理的http response给钉钉服务器,而不应该在本事件内做大量耗时操作,从而给管理员开通应用流程提供更好的产品体验。

应用主动获取企业信息

应用即便没有接收到“企业授权开通应用”回调事件,或者没有处理好回调事件,钉钉的开通流程也会走完,并且会在钉钉客户端的工作页内出现此应用图标。在此情况,应用依然可以通过API补偿获取企业信息。

image.png

当企业内某员工第一次点击此应用图标进入到应用首页后,E应用的前端可以获取到当前企业的corpId,此时通过应用服务端查询数据库,以检查是否有此corpId对应的开通记录。如果应用没有开通记录,则可通过调用"获取企业授权的凭证"接口来检查企业开通情况,成功返回凭证则可存入数据库。当无法获取到accessToken时,证明此企业没有给应用授权。