项目背景
我们用的框架vue
、react
等都有他们的生命周期,同样我们工作的每一家公司也有其发展的生命周期,不同于vue
和react
,公司的生命周期大致可以分为初创期、成长期、成熟期、衰退期四个阶段。
如果公司不想在衰退期到来时破产倒闭,就需要在成长期或者成熟期主动开启一轮新的周期,去寻找新的业务增长点即实现企业发展的第二曲线。
文章开头聊的这些是为了介绍项目的背景以及公司的战略意图,公司交给我这个任务就是想做一个新的产品,打造出一条新的业务线,构筑企业发展的第二曲线。
钉钉应用分类
好了,言归正传,如何快速开发一个钉钉应用,在钉钉开放平台有相关的教程,跟着跑一遍就能把一个简单的demo做出来。这篇文章不是一篇教程,而是一篇钉钉生态的调研文章,哪些可以做,哪些不能做等等。
钉钉应用总共可以分成如下几类:
- 第三方企业应用
- 企业内部应用
- 第三方个人应用
- 移动接入应用
第三方企业应用 | 应用服务商的开发者 | 购买开通该三方应用的企业内部人员 |
|
是 |
企业内部应用 | 企业内部开发者或委托的定制服务商开发者 | 安装了该应用的企业内部人员 |
|
否 |
第三方个人应用 | 应用服务商的开发者 | 钉钉个人用户 |
|
是 |
移动接入应用 |
|
要接入的应用的用户 |
|
– |
第三方企业应用 和 企业内部应用是使用频率最高的钉钉应用;移动接入应用 只支持登录
和分享
两个功能,是一个比较底层的基础功能应用,跟公司的业务关联不大;;第三方个人应用 只支持小程序开发,跟企业应用相比限制更多,所拥有的能力更少。
企业内部应用
钉钉开放平台的第一个教程就是 开发和部署企业内部应用,开发企业内部的钉钉应用需要登录 钉钉开发者后台,在这之前你需要向公司申请成为管理员
或者子管理员
,然后就可以跟着官方的教程一步一步走了。当所有步骤走完开始调登录接口,获取用户信息的时候,接口返回error
:
最后排查发现是接口没有加相应权限, 在后台加上相应的权限后, 接口返回了正确的数据:
企业内部应用的使用者是安装了该应用的企业内部人员,虽然通过一些操作能让第三方企业使用,比如:
先让第三方公司在钉钉后台手动创建一个企业内部应用(微应用),之后再把微应用中的AppID、corpId、agentId等等应用信息发给本企业,本企业再到程序里添加进去,但是一个企业内部应用(微应用)白名单中IP只能设一次。如果本企业这边设置了服务器的IP,第三方公司就不能在他们那个微应用中设置这个IP。一种解决方案是:首先让第三方公司购买一台服务器,然后再把程序中的有IP限制的方法(也就是调用钉钉接口的地方)复制出来部署到第三方公司购买的服务器中,然后第三方公司的微应用中的白名单设置成他们购买的那台服务器IP
但是当使用该企业内部应用的第三方公司越来越多的时候,问题也会暴露的很明显,因为项目部署在第三方公司自己的服务器上,在后续的迭代过程中一旦要修改调用钉钉接口的地方,要在所有第三方公司的服务器上将项目重新部署一遍,非常的麻烦,所以 企业内部应用 应该给企业内部人员使用。如果要想给第三方公司使用,就应该使用 第三方企业应用。
第三方企业应用
什么是第三方企业应用
第三方企业应用是由应用服务商开发的第三方企业应用,可以通过上架到钉钉应用广场售卖给钉钉的企业组织使用,也可以通过服务商在开发者后台创建应用分发项目进行线下应用分发给企业组织使用。是能够实现开发一个应用,授权分发给不同的组织使用的应用类型。
和 企业内部应用 一样,第三方企业应用也支持小程序
和H5微应用
,但有两点需要特别注意:
- 应用分发方式
- 应用授权的开发
应用分发方式
应用分发方式主要有两种,都需要入驻成为钉钉【应用服务商】
-
钉钉应用广场分发
应用通过审核后即可上架到应用广场推广。应用上架后,企业管理员可以在钉钉的应用广场上搜索,找到需要的第三方企业应用,开通后让企业内的员工使用
-
自有渠道分发
可通过钉钉提供的接口生成线下推广二维码,在服务商自有渠道或钉钉端外渠道(例如外投宣传广告、第三方官网等)主动推送应用给管理员,由管理员授权后安装并使用。
在开发应用前,需要先确定应用的分发方式,不同的分发方式决定了应用的接口权限,部署要求,和交付体验。
分发方式 | 使用场景 | 接口权限 | 部署要求 | 安装方式 | |
---|---|---|---|---|---|
自主渠道, 定向分发 |
定向定量分发 |
|
可申请企业级接口权限,及优先使用更多共创接口 | 阿里云部署。个别行业允许本地部署,需审批 |
|
钉钉广场展示, 线上交付 |
上架,上广场 | 上架到钉钉应用广场,可被钉钉用户搜索 | 通用权限 | 必须部署到聚石塔 | 管理员在应用广场开通 |
上架,不上广场 | 自有渠道线下拓客 | 通用权限 | 阿里云部署 | 二维码线下开通 |
应用授权
这里的授权类似于微信小程序里用户的授权,只不过微信小程序里是单个的用户,而钉钉里是整个企业。
应用授权流程如下:
-
定制服务商应用和服务商需要通过接口获取授权企业的access_token。调用服务端API获取应用资源时,需要通过access_token来鉴权调用者身份进行授权。
-
注册回调。
第三方企业应用必须要注册回调,接收企业授权开通应用事件,用于通知应用哪个组织开通了本应用,第三方应用后台收到此事件后,需要初始化企业信息,完成应用的开通。
-
授权应用开通。
钉钉应用广场中的第三方企业应用,企业管理员可以授权开通。授权开通过程中需要接收企业开通的回调事件,钉钉支持不同的回调推送方式。回调方式不同,应用开通的流程也不同。
推荐使用RDS和HTTPSync推送方式,该方式的应用授权流程更简单。总共有三种推送方式,还有一种是HTTP数据推送(不推荐)。
-
接入服务端能力。
第三方企业应用必须接入钉钉免登、通讯录和工作通知能力。
-
免登开发
免登指企业员工在钉钉内使用第三方企业应用时,无需输入账号密码便可直接登录该应用。可以将用户信息保存在前端缓存(dd.setStorage)或者cookie中,避免每次进入应用都调用钉钉接口进行免登。
免登接入流程如下:
- 获取免登授权码Code。
- 通过调用service/get_corp_token接口获取企业授权凭证(access_token)。
- 调用user/getuserinfo接口获取用户的userid。
- 通过topapi/v2/user/get接口获取用户详情信息。
-
通讯录
获取应用安装组织的用户基本信息(不含手机号),用于用户添加、授权等管理。
-
工作通知
通过工作通知接口向用户发送钉钉工作通知。
-
-
前端开发
如果开发的是
H5微应用
,需要进行JSAPI鉴权。
总结
本篇主要介绍了钉钉应用的类型,着重介绍了 企业内部应用 和 第三方企业应用 ,以及钉钉应用的 分发方式 和 应用授权方式 。希望读者能对钉钉应用有一个大致的了解,想要具体和详细的了解,可以前往 钉钉开放平台 翻阅相关教程。