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

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

钉钉应用开发平台全貌

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

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

    • 2000+钉钉API

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

    • 原生应用

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

钉钉应用开发平台现状

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

二、5分钟开发应用演示

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

开发步骤

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

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

  3. 进入代码广场选择并开发应用。

  4. 选择“向个人或群发送消息”。

  5. 进入详情页,包括应用使用的语言、支持应用类型、关联接口、推荐能力包等。

    1. 创建应用。

    2. 调试运行,首先下载示例代码。

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

    4. 生成启动命令并复制,在本地启动。

    5. 发布应用。

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

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

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

应用的代码结构

应用的代码结构包括两个目录:

  • backend:服务端代码
    backend的核心是发送消息的controller,包括发送群消息、发送工作通知、查询已读列表,等功能。

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

三、钉钉应用开发过程

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

开发前:

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

开发中:

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

开发前

能力中心门户

能力中心是钉钉开放主阵地,一键体验,让开放能力接入更便捷。
点击前往能力中心
点击前往开发者文档

应用开发五部曲

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

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

场景化集成方案

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

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

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

    • 业务场景

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

云IDE在线体验

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

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

  • 体验示例代码

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

  • 体验应用功能

钉钉文档中心

点击前往开发者文档

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

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

应用开发实战案例

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

开发中

开发流程

  • 应用创建

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

创建应用

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

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

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

  • 基于开发者和使用方分类

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

开发者和使用方

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

token鉴权方式不同

可用api范围不同

开发形式

小程序、H5微应用

前端api不同

前端研发代码不同

运行场域

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

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

应用配置

  • 调用钉钉服务端接口前,需要先添加所需接口的调用权限。

  • 接口权限是以应用为维度授予的,每个应用的接口权限都是独立存在的,如果多个应用都需要调用同一个接口,那么每个应用都要添加相对应的接口调用权限。

  • 不是所有接口都可以直接开通使用,具体参照接口的使用范围和适用类型,部分接口需要付费或满足特定条件后才可使用。

开发代码

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

测试发布

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

贡献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:页面逻辑代码

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

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

  • 加大开放:让钉钉内部更开放

    • API开放
      建立开放评估体系,实现更高质量的开放。
    • 钉钉酷应用
      支持更多开放场域,目前群应用在灰度中,未来会有更新形式的应用形态。
    • 应用融合度
      融合度越高的应用,用户使用的频率也越高,因此这一指标可以指引应用开发的方向。
  • 目前正在进行的工作

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

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

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

五、Q&A

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

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

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

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

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

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

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

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

回看地址

回看地址

回看地址

DingTalk「开发者说」 5分钟开发钉钉应用相关推荐

  1. 「开发者说」“游戏化管理”上钉钉,关于悦积分的应用开发故事

     "在钉钉的应用开发不仅为企业提供智能积分.福利.文化.绩效等整体解决方案,同时也能让企业通过"打怪升级"的游戏化管理帮助企业解放生产力,让企业运营管理升级.通过与钉钉的 ...

  2. DingTalk「开发者说」|钉钉小程序开发实践

    移动Web的特点   钉钉小程序开发的应用分布很广泛,下面列举了四个常用的钉钉小程序:钉钉投票.传图识字,以及集成在钉钉客户端中的自定义平台和考勤打卡. 通过对比桌面设备,移动Web的特点体现在以下三 ...

  3. DingTalk「开发者说」第8期 钉钉微应用开发实战

    分享人:悦铭,钉钉H5微应用前端开发链路负责人 视频地址:一键回看 目录: 一.初识钉钉H5微应用 二.H5微应用原理解析 三.钉钉JSAPI使用与鉴权 四.H5微应用开发 五.H5的性能优化建议 六 ...

  4. DingTalk「开发者说」如何开发钉钉高价值应用三部曲

    一.钉钉是什么? 钉钉是企业应用数字化的操作系统 简单来说,钉钉是企业应用数字化的操作系统,就如同PC上的windows操作系统一样,我们可以在上面安装各种应用比如office.WPS,用于企业的各种 ...

  5. DingTalk「开发者说」第9期 钉钉数据授权开发实战

    分享人:骏隆,钉钉开放平台能力中心前端负责人 视频地址:一键回看 目录: 一.数据流转为什么需要授权,哪些数据需要授权 二.钉钉如何做数据授权 三.无线端统一授权套件详解 四.各类型应用获取手机号流程 ...

  6. 「开发者说」多系统集成开发-企业自有系统快速上钉钉

    "在2020年初那个疫情卷地百草折,又是胡天飞雪的时候,钉钉就像一夜春风带来的梨花一样带给我们希望和力量,从最初的审批.待办.日程等基础功能的使用,到后面的内部集成开发,办公效率是一步一步提 ...

  7. DingTalk「开发者说」第6期 边聊边做场景群

    视频地址:一键回看 目录 一.什么是"场景群" 二.群聊开放的核心能力介绍 三.从产品架构解读群聊会话开放 四.解决方案案例解读 五.场景群实践 六.Q&A 正文: 一.什 ...

  8. DingTalk「开发者说」第7期 钉钉前端开放及其业务思考

    分享人:氐宿,钉钉开放平台大前端负责人,高级前端专家 视频地址:一键回看 正文: 一.钉钉前端开放概况 1. 前端开放的目的 目前,JavaScript是业界应用最广泛的语言.Jeff Atwood在 ...

  9. 「开发者说」自动化设备管理上钉钉,“源创食堂“小程序开发实践

    本篇文章的供稿人为柳州源创电喷技术有限公司装备开发部部长蒙东辉,概览本文大概需要3分钟,精读本文需要10分钟. "钉钉应用开发让公司食堂都实现了数字化转型,食堂备餐浪费与不足的现象得到了有效 ...

最新文章

  1. 华为笔试题---明明的随机数
  2. 【MySQL】(图解)快速理解内连接、外连接、左连接、右连接
  3. WSUS3.0的部署及安装
  4. MyBatis架构设计及源代码分析系列(一):MyBatis架构
  5. mybitas oracle.sql.clob,Oracle使用简单函数
  6. HDU 1711 -Number Sequence(KMP)
  7. eclipse找不到dynamic_Eclipse Juno在Dynamic Web Project中没有JSP(但其他...
  8. mui 框架:a标签无法跳转 - 解决篇
  9. 针对服务器操作系统安全,浅谈等级保护中的服务器操作系统安全
  10. 三维旋转四元数系列(3.四元数定义与基本性质)
  11. 我想和iOS大牛们交流的问题
  12. for循环及break和continue的区别
  13. Python元组练习题
  14. 单链表的结构体定义与声明
  15. python批量删除行_听说用python来批量删除说说也挺快乐的呢~
  16. 华为麒麟9000性能提升幅度大,但恐难成安卓一哥
  17. 用layui创建表格
  18. 实战 | 如何利用 Scrapy 编写一个完整的爬虫!
  19. 计算100以内最大质数和求100以内的质数
  20. 文件操作opendir()/readdir()/closedir()/stat()

热门文章

  1. python爬虫基本反爬
  2. 数据结构-----引论
  3. js三层数组循环遍历(笛卡尔积)运算,并生成顺序
  4. 邻域、邻接、通路、连通、连通集、区域概念区分​​​​​​​
  5. SVM详解(一)线性可分支持向量机与硬间隔最大化
  6. esp8266驱动电机
  7. *6-1 CCF 2015-03-2 数字排序
  8. 受用一生的 PyCharm 技巧大全(三)
  9. Java毕设项目:房屋租赁管理系统(java+SSM+Maven+Mysql+Jsp)
  10. do while(0)的作用