作者:众成 文章来源:软件二部 点击数: 更新时间:2018-09-20 15:28:12
钉钉开放平台
企业内部应用开发简易流程整理
目录
当前,钉钉开放平台的开发类型有三类:第三方企业应用,第三方个人应用,企业内部应用。
1、第三方企业应用:主要开放给企业使用。ISV(独立软件服务商)以钉钉、企业之外的第三方身份,基于钉钉的开放能力开发应用,并上架至钉钉应用市场,供钉钉上的企业/组织使用。该类应用需要经过钉钉团队的审核,审核通过后,方可上架至钉钉应用市场。适用于服务商研发通用的产品应用。例如:CRM应用、人事管理应用、财务管理应用和企业差旅应用等。
2、第三方个人应用:主要开放给个人使用。ISV(独立软件服务商)以钉钉、企业之外的第三方身份,基于钉钉的开放能力开发应用,提供给钉钉个人用户使用。此种类型应用不感知企业信息。应用可以通过群转发、应用市场、群应用使用历史、个人应用使用历史等钉钉客户端入口传播和分发。该类应用需要经过钉钉团队的审核,审核通过后,方可被钉钉用户使用和搜索。
3、企业内部开发:钉钉上的企业或组织可以基于钉钉的开放能力,自主开发,供企业或组织内部使用,以满足办公场景中的个性化需求。该类应用无需钉钉团队审核,企业内部自行开发并使用即可。
内部应用也存在两种方式:
1、E应用:由钉钉团队提供的一种简洁的开发模式,支持IOS、Android部署(PC端暂不支持)。
2、传统H5开放模式:传统普遍可控的H5开发模式。
|
E应用 |
H5技术 |
---|---|---|
加载性能 |
首次使用略慢,后续加载快 |
受到很多因素影响,优化不够好,容易慢 |
使用体验 |
非常顺滑,接近 Native |
容易卡顿 |
页面跳转,返回 |
和 Native 的效果一样 |
做不到和 Native 一样的体验 |
开发环境搭建 |
提供 IDE,快速创建项目 |
成本高 |
调试 |
提供 IDE,可以在电脑上调试大部分功能 |
在电脑上只能调 UI,涉及到钉钉的 jsapi,必须真机调试 |
使用开源 UI 组件 |
目前不支持 |
支持 |
模块化组织代码 |
支持 E应用 特有的模块化 |
使用 vue, React 等框架可以轻松获得模块化支持 |
灰度发布 |
钉钉提供 |
需要自己实现 |
CDN |
E应用包默认在 CDN |
需要开发者自己购买相关服务 |
开发个人应用 |
支持 |
不支持 |
应用离线化 |
支持 |
不支持 |
E应用有专门的开发工具(https://open-doc.dingtalk.com/microapp/debug/ide),如图2.2.1所示,为开发界面。
其实这个工具不仅仅是钉钉应用开发用,还包含了支付宝的小程序,mPaaS的小程序。该工具也会简化部署,但是不兼容网络上下载到的绝大多数js,开发的局限性很大,提供的都是标准化的UI控件。并且开发的代码仅包含前端,依然要搭建服务器与之进行数据交互,总的来说是弊大于利。等待后续的更新,毕竟只是测试版的。
图2.2.1 钉钉小程序开发者工具 Beta
前端的大部分开发,基于H5的开发规范即可。
但当需要使用钉钉的一些功能时,就需要调用JSAPI。而使用流程如下:
引入JS文件 → JSAPI权限验证配置 → 调用JSAPI组件
在页面引入js文件:https://g.alicdn.com/dingding/dingtalk-jsapi/2.0.72/dingtalk.open.js
权限验证配置流程:获取access_token → 获取jsticket → 获取签名参数 → 计算签名信息。如图3.1.1所示。参考网站:
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.7c854a97IpubxB&treeId=168&articleId=107551&docType=1#
图3.1.1 JSAPI鉴权流程
在此建议下载官方mode代码,直接导入到自己项目里,留意引入必要的包,做好maven配置。
在dd.ready中调用需要的组件即可。
JSAPI总览:
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.261a4a97IPDis3&treeId=171&articleId=106834&docType=1
个人心得:
(1)按钮的onclick如果要用到组件的话,建议采用$("#id").on("click",function(){});的方式。
(2)用到的组件,要记得在config的jsApiList中注册。
(3)组件中包括了许多弹窗,时间选择器等,同时兼容IOS与Android。
如果前段JSAPI导入了工程项目,导入了必要的包,后端开发就会变得简单。
服务端API列表:
https://open-doc.dingtalk.com/microapp/serverapi2
值得注意的是,服务端API中,许多比较重要的功能还在开发中,要使用的话需要申请加入“钉钉ISV沟通组”,在里面的审批项目中申请权限。(不管是申请加组,还是申请权限都非常慢,笔者等了两星期以上,才加入了组)
参考地址:
https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.51a94a97nj754G&treeId=367&articleId=107520&docType=1
进入开发之前,请确保你在钉钉上是某个组织的管理员,拥有管理权限,才可以为该组织开发微应用,供内部员工使用。
(1)登录钉钉管理后台(https://oa.dingtalk.com/)进入「工作台」,点击最下方的「自建应用」,并填写信息,确认后即可创建一个新的微应用。
注意:后台地址,首页地址,PC版首页地址都以http://或者https://开头的URL,三种地址必须保持域名的统一。
(2)创建微应用时,就会有AgentID,在前后端权限认证时会用到。如图4.1.1所示
(3)钉钉开发者平台中https://open-dev.dingtalk.com,可以得到CorpId和CorpSecret,两者也是前后端权限认证时会用到。如图4.1.2所示。
图4.1.1 AgentID获取方式
图4.1.2 CorpId与CorpSecret获取方式