一、简介
钉钉开放平台地址:open-dev.dingtalk.com/
钉钉应用分为三种:企业内部应用、第三方企业应用、第三方个人应用 。如下: 第三方个人应用 比较好理解,就是自己做给自己玩的,也没法给其他人玩。 但是企业内部应用 和第三方企业应用理解起来就有点麻烦了,不像微信小程序一个就行了。这导致开发者在创建小程序的时候是一头雾水,不知道选哪一个。 为了让大家对这三种小程序有一个简单的认识,下面我来给大家介绍一下这三种小程序的区别。
二、介绍一下
1. 举个例子
为了方便理解,我来举个例子🌰:
我是一家不到50人小公司(没有懂IT的员工)的老板,为了方便管理员工,让大家都用起了钉钉。为了统计大家每天上下班的时间,让他们使用钉钉自带的打卡小程序 。 后来公司发展到了几百人,也有了技术部,这时我想看一下公司的经营情况,让技术部在钉钉上做了一个生意参谋小程序 ,这样我打开钉钉就可以查看了,非常方便。 由于技术部做的这个生意参谋小程序 非常好用,我的一些合作伙伴(其他公司)也想用,我就让技术部把这个生意参谋小程序上架到应用市场,合作伙伴们只需要去市场中心安装这个小程序就可以使用了。
上面一共出现了两个小程序:打卡小程序 、生意参谋小程序 ,那么这两个小程序分别属于哪一类呢? 1.打卡小程序是钉钉自带的,不是我们公司自己开发的,我们只是使用,所以它是第三方企业应用。
2.生意参谋小程序比较特殊,它是我们公司技术部自己做的,那它就一定是企业自建应用吗? 其实不然,如果这个小程序只有我们公司用,那么选择企业内部应用即可。但后面合作伙伴也想用的话,企业内部应用是不支持分发的,必须要选择第三方企业应用。
2. 选择依据
- 自己做给自己玩:第三方个人应用;
- 自己企业做给自己企业玩:企业内部应用;
- 除了自己企业玩还给其他企业玩:第三方企业应用
三、开发区别(不考虑个人应用)
1. 应用凭证
企业内部应用
一共四个值:AgentId、MiniAppId、AppKey、AppSecret
第三方企业应用
一共五个值:SuiteId、AppId、MiniAppId、SuiteKey、SuiteSecret
这两种小程序除了都有一个MiniAppId外,其他的属性都不同,这导致使用上也有所不同。 最大的区别是企业内部应用和第三方企业应用获取AccessToken的方式是不同的。企业内部应用获取AccessToken只需要AppKey和AppSecret即可;但是第三方企业应用还需要一个SuiteTicket,怎么获取这个SuiteTicket,我会在后续的文章中说明。
2. 消息推送
企业内部应用
文档地址:open.dingtalk.com/document/or...
第三方企业应用
文档地址:open.dingtalk.com/document/is...
企业内部应用和第三方企业应用消息推送的界面都不同,所以使用上肯定也是不同的两套。简单来说,企业内部应用的消息只需要自己拼接正确的json字符串,然后调用发送接口就可以发送了。但第三方企业应用分为好几步:创建消息模板--->消息模板审核--->调用消息模板发送。企业内部应用是没有模板这个概念的。
3. 事件与回调
企业内部应用
第三方企业应用
这里双方都有一个回调请求地址,且加解密的方式都相同,但二者有一个最大的不同:第三方企业应用比企业内部应用的回调多了一个SuiteTicket,这个也是上文说到第三方企业应用获取AccessToken的一个必要的参数,这个SuiteTicket会定时推送,具有时效性。
4. 版本管理与发布
企业内部应用
第三方企业应用
企业内部应用只需要在本地提交代码发布即可,但第三方企业应用除了提交代码外还需要设置一个体验组织,毕竟第三方企业应用不仅仅是给自己玩的,其他企业也要能看到,设置完之后会有一个体验版二维码,拿钉钉扫码即可体验。 此外,第三方企业应用可以不上架到市场,通过部署二维码的方式也能给其他企业使用,但是有上限,最多部署20个。如果还想部署到更多企业,那么则需要走第三方企业应用的上架流程。
四、其他比较重要的
1. 查看CorpId
登录开发平台后,CorpId在首页的右上角可以看到。
2. 获取accessToken的方式
a、企业内部应用获取accessToken
帮助文档:获取企业内部应用的accessToken
在获取accessToken前,需要在开发者后台查看应用的AppKey和AppSecret:
- 登录钉钉开发者后台。
- 在应用开发页面,单击目标应用进入应用详情页面。
- 在基础信息页面,复制应用的AppKey和AppSecret。 然后直接拿这两个参数调用接口即可,这个还是很简单的,我就不多说了。
b、第三方企业应用获取accessToken
第三方企业应用没有appKey和appSecret,与之对应的是suiteKey和suiteSecret。 然后它还需要两个参数:authCorpId和suiteTicket。
这两个参数对于初学者十分难以理解,人家微信、抖音都是只有appKey、appSecret就行了,就钉钉与众不同。所以这里我很有必要解释一下这两个参数的意思。
authCorpId 官方称它为授权企业的CorpId
,简单来说就是我A企业开发的小程序你B企业也想用,你们也不需要重新创建一个新的,我授权给你就行,所以这里的授权企业的CorpId
不是A企业的CorpId,而是B企业的CorpId,别搞错了。
suiteTicket suiteTicket是由钉钉服务器颁发给开发者的票据,用于验证开发者身份和权限,和企业无关。至于这个怎么获取,请看这篇文章 钉钉小程序生态5---钉钉群机器人消息通知和钉钉工作通知
拿到以上suiteKey、suiteSecret、authCorpId和suiteTicket参数后,调用钉钉接口即可。