DingTalk「开发者说」
开发钉钉酷应用集成入门
摘要:本篇主要分享钉钉酷应用的群应用开发流程和实践。
分享人:石周,钉钉酷应用开发技术专家
视频地址:
正文:
一、什么是酷应用?
钉钉酷应用是以场景为中心,解构巨型应用并重组,便捷完成协同,高效实现目标的全新应用形态。
从应用开发的视角来看,凡是具备在不同场景(如群应用、工作台组件、日程应用、消息应用等)扩展使用能力的应用,统称为酷应用,亦即:酷应用兼具业务功能和跨场域联动的特点。
二、群应用
群应用是钉钉酷应用中目前较为成熟的一种,是在会话中使用的应用扩展形态,其基于主应用扩展了快捷入口、会话机器人和互动卡片的能力,使应用不仅可以在群会话中实现多人多角色的任务协同、目标共创、商机共享、战报通告等沉浸体验,从技术能力上还可以实现在单聊会话中集成酷应用。
示例:某企业通过群应用对焦OKR
群应用的特性
- 沉浸式体验:无需脱离聊天上下文,不打断当前工作;
- 场景化协同:信息围绕场景和具体事项做实时高效协同;
- 即时数据分析:利用高效协同产生的结构化数据进行即时分析,形成有效洞察;
- 指标化运营:人人参与,实干真用,和组织激励机制相结合,让数字化真正落地。
群会话扩展的开发流程
- 创建应用
- 配置机器人
- 设置群会话扩展
- 开发卡片
- 开发完成验证
企业自建酷应用开发文档:https://open.dingtalk.com/document/org/cool-application-introduction
第三方企业酷应用开发文档:https://open.dingtalk.com/document/isv/cool-application-introduction-isv
三、酷应用开发流程
开发企业内部应用流程图
1、开发企业应用
- 创建企业应用,或者复用之前存在的应用;
- 第三方酷应用,最终依赖第三方应用的上架,新应用要走上架流程。
企业自建应用学习路径:https://open.dingtalk.com/document/org-roadmap
第三方企业应用学习路径:https://open.dingtalk.com/document/isv-roadmap
2、配置应用机器人
- 应用机器人为群扩展中必需;
- 三方机器人默认创建,机器人名称图标和应用保持一致,不允许修改;
- 配置机器人消息接收地址,用来处理机器人的被at消息,非必选;
3、配置群拓展
配置群扩展信息
配置快捷入口
- 企业自建酷应用信息可以修改,点击添加到群之后,就可以到当前企业下的群内验证;
- 第三方酷应用发布之后信息不可以修改,可以先在测试应用中测试验证,后续如果有修改诉求,可以找运营修改。自动化运营审核的流程也会在不久的将来上线;
- 链接encode不要将$符号encode掉,否则该参数无法传入;
- 链接打开配置请使用半屏打开方式,以保证应用的沉浸式体验。
4、互动卡片
- 互动卡片是酷应用的核心功能;
- 互动卡片可以理解为传统应用的H5页面,承载交互的核心业务流程;
- 卡片中的链接配置为半屏打开,更沉浸式的体验。
5、开发完成验证
- 企业自建应用,选择添加到群直接测试;
- 三方企业应用,需要安装到测试组织,才能在测试组织的群内开通使用,所以需要参考体验安装流程(配置好事件订阅,接收三方必接事件即可)。
四、酷应用开发实践
Demo地址:https://github.com/open-dingtalk/h5app-cool-app-demo
项目需求:搭建一个在群内可以以卡片形式运行的应用
开发步骤:
1、创建应用
a. 登录钉钉开放平台后台创建一个H5应用: https://open-dev.dingtalk.com/#/index
b. 配置应用
参考文档:https://developers.dingtalk.com/document/app/configure-orgapp
c. 此处配置“应用首页地址”需公网地址,若无公网ip,可使用钉钉内网穿透工具;
钉钉内网穿透工具,可用于开发调试,请勿用于生产:https://developers.dingtalk.com/document/resourcedownload/http-intranet-penetration
d. 配置相关权限
本demo使用接口相关权限有:
成员信息读权限
chat相关接口的管理权限
chat相关接口的读取权限
参考文档:https://developers.dingtalk.com/document/app/address-book-permissions
2、配置机器人
参考文档:https://open.dingtalk.com/document/org/configure-push-settings
- 机器人图标和名称可自定义;
- 消息接收地址格式:应用首页地址 + /coolappbot/msg;
- 示例:http://dingtalkcool.vaiwan.cn/coolappbot/msg
3、配置群应用和群入口
参考文档:https://open.dingtalk.com/document/org/configure-the-basic-information-of-the-group-application
a. 扩展到群会话;
b. 配置群应用入口;
此应用需配置两个群入口:小酷公告、小酷日程。头像和名称可自行定义,链接配置参考下方。
小酷公告:
- 移动端地址:
dingtalk://dingtalkclient/action/im_open_hybrid_panel?panelHeight=percent60&hybridType=online&pageUrl={URL编码后的首页地址}%2F%23%2FAnnouncement%2F$DOUBLE_ENCCID$
- 示例:
dingtalk://dingtalkclient/action/im_open_hybrid_panel?panelHeight=percent60&hybridType=online&pageUrl=http%3A%2F%2Fdingtalkcool.vaiwan.cn%2F%23%2FAnnouncement%2F$DOUBLE_ENCCID$
- 桌面端地址:
dingtalk://dingtalkclient/page/link?url={URL编码后的首页地址}%2F%23%2FAnnouncement%2F$DOUBLE_ENCCID$&pc_slide=true
- 示例:
dingtalk://dingtalkclient/page/link?url=http%3A%2F%2Fdingtalkcool.vaiwan.cn%2F%23%2FAnnouncement%2F$DOUBLE_ENCCID$&pc_slide=true
小酷日程:
- 移动端地址:
dingtalk://dingtalkclient/action/im_open_hybrid_panel?panelHeight=percent60&hybridType=online&pageUrl={URL编码后的首页地址}%2F%23%2FSchedule%2F$DOUBLE_ENCCID$
- 示例:
dingtalk://dingtalkclient/action/im_open_hybrid_panel?panelHeight=percent60&hybridType=online&pageUrl=http%3A%2F%2Fdingtalkcool.vaiwan.cn%2F%23%2FSchedule%2F$DOUBLE_ENCCID$
- 桌面端地址:
dingtalk://dingtalkclient/page/link?url={URL编码后的首页地址}%2F%23%2FSchedule%2F$DOUBLE_ENCCID$&pc_slide=true
- 示例:
dingtalk://dingtalkclient/page/link?url=http%3A%2F%2Fdingtalkcool.vaiwan.cn%2F%23%2FSchedule%2F$DOUBLE_ENCCID$&pc_slide=true
4、互动卡片
Demo中已植入调用互动卡片接口代码,可在Demo中详细查看。
5、启动应用
参考文档::https://open.dingtalk.com/document/org/install-group-applications
a. 启动应用:启动命令(以mac系统为例):
./dingBoot-mac.sh start {项目名} {端口号} {appKey} {appSecret} {agentId} {corpId}
b. 发布应用:进入“版本管理与发布页面”,发布应用,发布后即可在PC钉钉或移动钉钉工作台访问应用。
c. 客户端添加并启动应用:
启动首页示例
公告页面示例
日程页面示例
群互动卡片消息示例
群应用入口示例
五、Q&A
Q:酷应用开发是否需要定制开发服务商的资质?
A:不需要。
Q:酷应用企业自建ISV要走上架,也视为一种三方应用吗?
A:是的。
Q:第三方酷应用如何开发?
A:第三方酷应用的开发和企业自建酷应用的开发基本差不多,只是多了一个上架审核的流程,同时其主应用需要上架到市场。
Q:第三方酷应用和企业自建酷应用在权限上是否有区别?
A:酷应用没有,在其它一般的主用上,API权限有些差异。
Q:第三方酷应用未上架前想要在群内进行测试,该如何操作?
A:第三方酷应用上架之前有扩展到群的入口,测试的话可以安装到体验组织,在体验组织内进行测试即可。其安装流程有一些hack的方式:将酷应用的code复制下来,在群应用市场多次点击后可以打开测试入口(详见本篇第三节第5小节图片)。
Q:酷应用成熟的应用场景有哪些?机器人学习有开源吗?是否提供一些成熟的机制?
A:目前比较典型的合作像对接OKR、任务管理、招聘之类的,需要结合企业的具体业务,可以一起探索。目前钉钉机器人的后台算法还没有开源出来。
Q:第三方酷应用可以有多个不同的应用在多个群使用吗?
A:目前一个第三方应用只支持一款酷应用,这款酷应用可以在不同的群使用,如果一个三方应用需要多个场景和多个酷应用的情况下,可以和钉钉负责运营的同学具体沟通下,也是可以放开的。
Q:酷应用和主应用的关系和区别是什么?
A:当主应用具备了一定的扩展能力则可以成为酷应用,二者并不是非此即彼的关系。在一定的维度内,主应用是指偏传统的应用,像在工作台打开,具备完整的业务流程等;酷应用是指在某些IM比如群会话场景下的应用,具备完整闭环的业务流程实现。
Q:酷应用有开发交流群吗?
A:没有交流群,近期会有一些开发培训的训练营,欢迎关注。