DingTalk「开发者说」第4期|手把手 5分钟教你完成钉应用开发

简介: DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。本篇介绍了在钉钉应用开发平台如何快速便捷的开发钉应用,从开发前的准备,到创建开发、部署上线、以及低门槛快速体验的流程。适合刚刚接触钉钉应用开发的开发者。

分享人:石周,钉钉应用开发技术负责人



一键回看视频地址:一键回看

正文:


一、钉钉应用开发平台是什么?


钉钉应用开发平台是开发在钉钉容器内运营的应用。钉钉应用是业务数字化的高价值载体,云钉一体能力底座全面普惠,释放数字化生产力量,加速组织业务数字化转型,打造企业数字化统一办公门户。


1. 钉钉应用开发平台全貌


在下图中可以看到,钉钉应用开发平台包含钉钉开放底座以及在钉钉上使用的四类应用、两大部分内容:


a. 钉钉底座:提供丰富的开放能力

  • 2000+钉钉API
  • 如:IM/日程/OA审批/订盘等;
  • 45+场景化能力包
  • 如:行政/财务/人事/IT管理等;
  • 10+钉钉开放场域
  • 如:工作台/会话/日历/文档等;
  • 80+硬件产品开放
  • 如:考勤/门禁/会议等;


b. 在钉钉上使用的四类应用

  • 原生应用
  • 如:考勤打卡、签到、审批、邮箱、公告,等等,实现一些标准化的流程;
  • 钉钉市场应用
  • 专注于一些领域开发的专业应用,如财务、OA、客户管理等;
  • 低代码应用
  • 钉钉搭,低代码或者零代码的方式开发应用,让企业的业务人员也可以低门槛的开发应用,集成了宜搭,氚云,简道云等主流厂商;
  • 全代码应用
  • 基于钉钉开放底座2000+API,集成企业业务流程,实现企业数字化流程,开发运行于钉钉容器内运行的应用;


1. 钉钉应用开发平台现状


钉钉应用开发平台是一个成熟的开发平台,拥有2000+API、50+场景能力包、10+开放场域,企业自建应用数达到百万级。


一、5分钟开发应用演示


钉钉开平台提供应用开发源代码,供开发者在开发者后台迅速跑通并创建应用或关联应用。


1、开发步骤:


a. 登录开发者后台:https://open-dev.dingtalk.com


b. “从示例代码创建应用”中点击“更多示例代码”;


c. 进入代码广场选择并开发应用;


d. 选择“向个人或群发送消息”;


e. 进入详情页,包括应用使用的语言、支持应用类型、关联接口、推荐能力包等;右边的“快速体验”,列出了开发的三个步骤:创建应用、调试运行和开发应用;


f. 创建应用;

g. 调试运行,首先下载示例代码;


h. 使用IntelliJ IDEA打开下载好示例代码(能力包);


i. 生成启动命令并复制,在本地启动;


j. 发布应用;


系统会自动化完成一系列工作,包括:接口权限设置、应用访问地址配置、应用可用范围配置,同时会生成一个二维码,使用钉钉手机端扫描即可访问使用,PC端可用点击“直接访问应用”进入。


k. 应用使用演示:创建群并向群内发送消息


打开钉钉应用,填写表格中的相关内容,群名称、消息标题、消息内容,消息链接、选择发送人等,提交后即会收到消息,点击消息可以跳转到配置中的消息链接。



至此完成了一个应用在钉钉上的开发和本地部署,以及在钉钉上的访问。


2、应用的代码结构


应用的代码结构包括两个目录:backend服务端代码,frontend前端代码;

a. frontend

frontend的核心是App.js,在这里实现了免登功能、发送群消息按钮,等基础功能;


b. backend

backend的核心是发送消息的controller,包括发送群消息、发送工作通知、查询已读列表,等功能;


一、钉钉应用开发过程


钉钉应用开发过程可以分为开发前和开发中。


  • 开发前:
  • 需求匹配:了解自己的需求,查看钉钉提供了哪些能力;
  • 可行性分析:体验感受钉钉提供的能力,分析是否满足诉求;

开发中:

  • 创建应用,管理权限,编写代码,调试测试,发布上线;


1. 开发前


a. 能力中心门户

能力中心是钉钉开放主阵地,一键体验让开放能力接入更便捷。


能力中心网址,https://open.dingtalk.com/developer

开发者文档,开放能力详解,API官方手册,https://open.dingtalk.com/document


b. 应用开发五部曲

  • 把企业应用添加到工作台;
  • 应用一键免登;
  • 内网应用上钉钉;
  • 集成钉钉能力;
  • 与钉钉产品融合;

只需简单几步实现把企业系统快速搬上钉钉,方便员工管理与使用,更能集成钉钉开放能力,融合钉钉产品形态,加速组织业务数字化;


c. 场景化集成方案

基于钉钉丰富的开放能力,支持复杂的业务场景需求,提供多场景、多行业、多角色的能力融合解决方案,大大提升数字化生产力;


d. “场景化能力融合方案包”

钉钉应用开放平台根据企业常见场景,对钉钉能力进行最优编排,并提供应用开发示例源码,全面助力开发者开发高价值应用,加速企业数字化转型。


场景化能力融合方案包示例


  • 业务场景
  • 钉钉开放能力和企业常见的业务结合,场景化包装使用说明;
  • 标杆案例
  • 最佳实践标杆案例,展示应用开发前后使用变化;
  • 开发流程
  • 针对钉钉能力进行了能力使用编排,并提供完整的开放文档、SDK;
  • 示例源码
  • 提供开发源代码,可开发者后台跑通源码,并直接复用代码;


e. IDE在线体验

场景化能力融合方案包也提供了IDE体验功能,可以帮助开发者在没有开发环境的时候,预先体验钉钉应用的开发流程,同时可以在云IDE中进行断点调试、修改代码测试、可行性调研时代码的功能实现效果等。

下面是以第三方的一个“公司/园区数字食堂”应用为例的在线体验步骤。


  • 体验示例代码;


  • 按照右侧任务栏中的步骤执行,完成后用手机端扫描二维码;


  • 体验应用功能


f. 钉钉文档中心

开发者文档参考,开放能力详解,API官方手册https://open.dingtalk.com/document

  • 学习路径

钉钉文档中心新上线了学习路径,以企业内部应用开发为例,学习路径会详细介绍应用开发的具体流程,用简洁易读的方式让开发者一目了然,有的放矢的学习。

  • API文档

包括服务端、客户端,以及各产品模块API的完整介绍。


g. 应用开发实战案例

DingTalk“开发者说”展示各行业在钉钉开发的实战案例,帮助你开阔思维,快速开始在钉钉开发。



2、开发中


使用钉钉应用开放平台的开发者后台,进行开发和管理钉钉应用。https://open-dev.dingtalk.com


a. 开发流程

  • 应用创建
  • 应用类型:小程序、H5微应用、机器人;
  • 应用名称;
  • 应用描述;
  • 开发方式:企业自主开发或委托服务商开发;
  • 应用配置
  • 如服务器出口IP:用于调用服务端接口;
  • H5微应用:应用首页地址和PC端首页地址;
  • 小程序:开发人员和小程序域名;
  • 机器人:消息接收地址;
  • 应用开发与部署
  • 获取API调用凭证;
  • 接入钉钉免登;
  • 其它接口接入例如通讯录、审批等;
  • 前端开发;
  • 应用测试
  • 小程序:上传开发版本并设置体验组织;
  • H5微应用:添加测试用户名单;
  • 应用发布
  • 直接发布,发布后可调整应用的使用范围,如财务应用只限财务人员可见;


b. 创建应用

钉钉上的应用,本质代表着钉钉平台上的一个真实可靠的身份,所以创建应用之后,代表可以使用这个身份,安全可信的调用API,接收事件,处理业务逻辑。

所以创建应用之后,可以得到应用的ID,AppKey和AppSecret,这是做接下来开发最重要的东西。

钉钉全代码应用,基于应用的开发者身份、应用使用方、运行模式分为不同的类型:

  • 基于开发者和使用方分类
  • 分为企业自建应用、第三方企业应用和第三方个人应用;
  • token鉴权方式不同,企业自建应用企业可使用自己的信息鉴权,而第三方企业应用则需要第三方开发者身份和使用方(企业)身份鉴权;
  • 可用API范围不同,企业自建应用可调用API范围比较广,而第三方企业/个人应用有专有API及权限范围;
  • 基于开发形式分类
  • 分为小程序、H5微应用;
  • 小程序的优势在于用户体验度比较高,H5微应用的优势在于灵活、可实现功能更丰富;
  • 前端API和研发代码不同;
  • 基于运行场域分类
  • 分为工作台、群应用、消息菜单等;
  • 需要适配开发对应场域的代码,比如群应用需要开发机器人,卡片功能等;


开发者和使用方

企业自建应用,第三方企业应用,第三方个人应用

token鉴权方式不同

可用api范围不同

开发形式

小程序、H5微应用

前端api不同

前端研发代码不同

运行场域

工作台、群应用、消息菜单等

需要适配开发对应场域的代码,比如机器人,卡片功能等


c. 应用配置

  • 调用钉钉服务端接口前,需要先添加所需接口的调用权限:
  •  口权限是以应用为维度授予的,每个应用的接口权限都是独立存在的,如果多个应用都需要调用同一个接口,那么每个应用都要添加相对应的接口调用权限
  • 不是所有接口都可以直接开通使用,具体参照接口的使用范围和适用类型,部分接口需要付费或满足特定条件后才可使用;


d. 开发代码

  • H5应用本质是开发一个站点,把站点首页配置的应用中,就可以访问了;
  •  免登是基本上必须接入的能力,可以获取到当前访问用户的身份
  •  调用任何服务端API需要生成token,token管理也是必备的能力
  • 所有的示例代码都已经实现了这两部分功能,开发者可以基于Demo进行二次开发,节省开发时间。



e. 测试发布

  • 内网穿透(前文的应用开发演示)只是用来本地测试,不可以用于生产环境;
  •  测试阶段可以配置仅自己可见
  • 发布完成之后,在工作台找到对应应用,可以点击查看;


f. 贡献Demo,繁荣社区

  • 贡献完整demo

https://github.com/open-dingtalk/h5app-demo.git

  • 参与demo仓库的代码贡献
  • Demo示例,重点关注以下部分:

backend:后端SpringBoot项目;

dingboot-common:Demo模板包,基础逻辑封装;

taobao-sdk-java-auto:钉钉SDK,用来调用API;

UrlConstant:接口URL,自行添加;

BizController:Controller,实现自己的业务代码;

BizManager:Service,具体实现业务逻辑代码;

Application:填写应用配置信息;

frontend:前端React项目;

App.js:页面逻辑代码。



四、钉钉应用平台发展规划


钉钉应用开发平台的使命,是让应用开发更简单。


1. 加大开放:让钉钉内部更开放


a. API开放:建立开放评估体系,实现更高质量的开放;

b. 钉钉酷应用:支持更多开放场域,目前群应用在灰度中,未来会有更新形式的应用形态;

c. 应用融合度:融合度越高的应用,用户使用的频率也越高,因此这一指标可以指引应用开发的方向;


2. 目前正在进行的工作


a. 提升开放能力平台的易用性,包括能力中心、场景化能力包、云IDE体验、代码广场等;

b. 指引更清晰,包括应用配置指引、文档学习路径、开发者小助手等;

c. 工具更丰富,包括API统计/诊断/调试/管理、内网传统、微应用调试工具、D-Design组件库等;



五、Q&A


Q:目前没有直接获取企业全部员工的接口,如何获取企业全部员工的信息?后续是否有计划开放类似接口?

A:是可以获取到的,目前在通讯录下有部门、人员获取接口,根据获取组织的部门及部门下属人员来获取组织人员信息。


Q:开发中的报错信息“参数不合法”,但没有提示哪个参数,针对这类报错如何解决?

A:可以运用新的API诊断工具,其中会有更详细的报错信息,如果还是不能显示具体问题,可以求助技术支持人员进行排查。


Q:员工的档案接口字段是否没有全量开发?例如userID和手机号?

A:因为手机号属于敏感信息,需要申请手机号接口权限,然后唤起个人信息授权,授权后才可以拿到相应信息。可在文档中搜索个人手机号和个人授权组件,将两个功能结合即可。


Q:API接口调用有时候失败,提示系统繁忙是什么原因?

A:导致系统繁忙有多种原因,可能是网关不稳定,或者是一些内部错误,错误码包装的不是很清晰,可以提交工单或找在线的答疑机器人询问,并提供相关接口的requestID。

目录
相关文章
|
移动开发 前端开发 Java
《钉钉应用开发者速成手册》之“钉钉应用开发入门——H5微应用”
本文将以获取当前用户部门信息的H5微应用为例,帮助您快速了解钉钉H5微应用的开发流程。
2876 0
《钉钉应用开发者速成手册》之“钉钉应用开发入门——H5微应用”
|
移动开发 算法 机器人
DingTalk「开发者说」- 开发钉钉酷应用集成入门
本篇主要分享钉钉酷应用的群应用开发流程和实践。
DingTalk「开发者说」- 开发钉钉酷应用集成入门
|
JSON 搜索推荐 前端开发
DingTalk「开发者说」- 酷应用开发之卡片开发和能力套件开放
本篇主要讲解钉钉酷应用中卡片的构造、接口和最佳实践,以及卡片未来的规划和能力套件开放。适用对象:产品经理和有技术背景的开发工程师。
DingTalk「开发者说」- 酷应用开发之卡片开发和能力套件开放
|
移动开发 小程序 安全
DingTalk「开发者说」— 钉钉数据授权开发实战
随着《中华人民共和国网络安全法》的实施,对个人信息的保护越来越严格,钉钉遵守安全法要求,对钉钉上个人信息的收集、使用、共享有严格的把关。本次分享主要介绍钉钉如何做个人数据把关,以及在个人选择同意原则下,如何对个人数据做授权流转,以及实践演练。 DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。
2177 4
DingTalk「开发者说」— 钉钉数据授权开发实战
|
前端开发 测试技术 API
DingTalk「开发者说」— 钉钉应用开发前端工具实践
DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。 本篇将主要介绍钉钉最新推出的前端应用开发工具DingStudio,及其特点、能力和使用案例,帮助钉钉应用开发提效。
DingTalk「开发者说」— 钉钉应用开发前端工具实践
|
移动开发 缓存 前端开发
DingTalk「开发者说」第8期 钉钉微应用开发实战
DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。 本篇介绍了钉钉H5微应用的概念、原理及开发实战。
2771 2
DingTalk「开发者说」第8期 钉钉微应用开发实战
|
移动开发 前端开发 小程序
DingTalk「开发者说」第7期 钉钉前端开放及其业务思考
DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。 本篇介绍了钉钉前端开放的概况及其对开发者的业务价值思考,最后从高级技术专家视角,为大家讲解前端团队如何在业务中取得突破
DingTalk「开发者说」第7期 钉钉前端开放及其业务思考
|
存储 移动开发 小程序
DingTalk「开发者说」|钉钉小程序开发实践
摘要:DingTalk「开发者说」是专为钉钉开发者打造的栏目,分享钉应用开发的实战技巧、技术架构、解决方案,致力于成为钉钉与开发者的连接桥梁。本篇分享主要内容包含移动端Web的特点,钉钉小程序的优势,钉钉小程序开发原则,开发中常见的问题,以及钉钉小程序未来规划。 分享人:宵何,钉钉小程序开发工具及研发链路技术负责人
72684 5
DingTalk「开发者说」|钉钉小程序开发实践
|
人工智能 运维 监控
DingTalk「开发者说」第6期 边聊边做场景群
DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。 本篇介绍了场景群的概念,钉钉群聊会话开放的核心能力和应用,以及场景群实践。
DingTalk「开发者说」第6期 边聊边做场景群
|
移动开发 安全 小程序
DingTalk「开发者说」第5期 |如何开发钉钉高价值应用三部曲
DingTalk「开发者说」是钉钉开发者最新上线的开发者栏目,联合阿里云ACE团队,分享钉应用开发解决方案、技术更新、实战技巧,致力于成为钉钉与开发者的桥梁与纽带,让更多的钉钉开发者传播技术、提升技能、分享观点。在数字化变革的时代,“云钉一体”“钉钉全面开放”战略之后,希望钉钉技术可以持续激发开发者的创造力,为组织数字化赋能。 本篇通过简单三步开发高价值钉应用,既可以把企业原有系统快速搬上钉钉,方便员工管理与使用,更能进一步集成钉钉开放能力,融合钉钉产品形态,加速组织业务数字化。
1091 1
DingTalk「开发者说」第5期 |如何开发钉钉高价值应用三部曲
下一篇
无影云桌面