准备工作
在开始接入前,确保您已经完成以下准备工作:
- 安装小程序IDE,单击小程序开发工具下载。
- 已下载并安装了IntelliJ IDEA开发工具。若未安装,请访问IntelliJ IDEA。
- 已经安装了Java开发环境。若未安装,请访问Oracle官网下载。
- 已经安装了Java项目构建工具Maven。若未安装,请访问Apache Maven下载。
- 已经安装了项目管理工具Git。若未安装,请访问Git官网下载。
创建应用
在本部分,你将在开发者后台创建一个H5微应用,并完成基础配置。
- 登录钉钉开发者后台。
说明
只有管理员和子管理员可登录开发者后台。 - 在开发者后台页面,单击应用开发,然后选择企业内部开发 > 小程序,最后单击创建应用。
- 在弹出的创建应用页面中填写基本信息,然后单击确定创建。
- 应用类型:选择小程序。
- 开发方式:选择企业自助开发。
- 应用创建完成后,在凭证与基础信息页面,复制应用的AppKey、AppSecret和AgentId备用。
- 单击开发管理进入开发管理页面,然后单击修改,并根据以下内容配置开发信息。
- 服务器出口IP:输入调用钉钉服务端API时使用的IP即企业服务器的公网IP,多个IP请以英文逗号","隔开,支持带一个*号通配符的IP格式。可通过工具进行查看。
本教程设置为127.0.0.1
。 - PC端首页地址(可选):输入在PC端钉钉工作台上打开本应用的地址。链接地址必须以http或https开头。
本教程设置为:https://ding-doc.dingtalk.com/
。 - 管理后台地址(可选):输入组织管理员在钉钉管理后台访问该应用的地址。
- 单击人员管理,然后单击添加人员添加开发人员。
说明
应用创建后,默认开发人员为应用创建者。 - 单击安全中心,然后单击添加添加一个HTTP安全域名。
当小程序的前端与服务端需要进行网络通信时,需要设置安全域名。小程序前端只能通过已设置的安全域名(或IP)与服务端进行网络通信。当安全域名更新时,需要在小程序开发工具重新打包上传版本,设置的域名才会生效。
安全域名是后端服务部署的服务器的公网IP或域名,本教程输入127.0.0.1
。 - 单击权限管理进入权限管理页面,然后根据以下配置添加接口调用权限。
- 权限范围选择全部员工,然后单击添加接口权限。
- 选择通讯录和审批接口权限。
创建出差申请表单
在本部分,你将在OA管理后台创建审批模板。
- 使用管理员账号登录OA管理后台,然后选择工作台 > OA审批。
- 在表单管理页面,单击创建新表单,然后选择自定义流程表单。
- 在基础配置页面,完成基础信息配置。
- 单击表单设计,然后在控件库中根据下表设计出差申请表单,并保存url中的processCode。
说明
拖拽控件后,需要修改控件标题。
表单项 |
使用控件 |
行程明细 |
明细/表格控件 |
出差地点 |
单行输入框控件 |
图片 |
图片控件 |
开始时间,结束时间 |
日期区间控件 |
出差人数 |
数字控件 |
出差金额 |
金额控件 |
出差同伴 |
单选框控件(添加的时候,把选项改为A,B,C) |
交通工具 |
单行输入框控件 |
出差事由 |
多行输入框控件 |
注意
切记保存好processCode,在服务端开发时需要该参数。
- 单击流程设计,单击+设置审批条件和审批人,如下图所示。
- 流程设计完成后,单击发布完成表单设计。
服务端开发
在本部分你将下载服务端代码,并完成基础配置。
参考以下操作,完成服务端开发:
- 执行以下代码,下载服务端代码。
git clone https://github.com/opendingtalk/eapp-corp-project.git
- 使用IntelliJ IDEA打开下载的代码工程,并修改配置:
- 运行IntelliJ IDEA,然后在启动页面单击Open。
- 选择刚刚下载的服务端代码,然后单击OK。
- 打开
src/main/java/com/config/Constant.java
文件,修改以下信息。
/** * 企业corpid, 需要修改成开发者所在企业 */ public static final String CORP_ID = "***"; /** * 应用的AppKey,登录开发者后台,点击应用管理,进入应用详情可见 */ public static final String APPKEY = "***"; /** * 应用的AppSecret,登录开发者后台,点击应用管理,进入应用详情可见 */ public static final String APPSECRET = "***"; /** * 数据加密密钥。用于回调数据的加密,长度固定为43个字符,从a-z, A-Z, 0-9共62个字符中选取,您可以随机生成 */ public static final String ENCODING_AES_KEY = "***"; /** * 加解密需要用到的token,企业可以随机填写。如 "12345" */ public static final String TOKEN = "***"; /** * 应用的agentdId,登录开发者后台可查看 */ public static final Long AGENTID = 111L; /** * 审批模板唯一标识,可以在审批管理后台找到 */ public static final String PROCESS_CODE = "***";
- 参考以下操作,部署后端服务。
- 打开
src/main/java/com/Application.java
文件。 - 使用快捷键ctrl+shift+f10,运行后端服务。
- 服务端启动后,在浏览器中访问http://localhost:8080/welcome,打开如下页面表示启动成功。
开发小程序
在本部分你将下载前端代码,并完成基础配置。
参考以下操作,完成前端开发:
- 执行以下命令,下载前端代码。
git clone https://github.com/opendingtalk/eapp-corp-project-fe
- 打开小程序IDE开发工具,打开已下载的项目。
说明
项目类型选择钉钉企业内部应用。 - 关联步骤一中创建的小程序应用。
- 打开
eapp-corp-project-fe/page/index/index.js
文件修改服务端URL,URL中的IP或者域名必须是开发者后台中设置的本应用的安全域名。小程序前端发起网络请求时是直连安全域名或IP的。
本示例中设置为http://127.0.0.1:8080
。 - 单击发起审批即可发起一个审批实例。
为了保持代码的简洁,本次demo发起的审批实例中,审批发起人、审批人和抄送人是同一个用户,即当前免登的用户。 - 打开钉钉打开移动端或PC端钉钉,找到该企业工作通知,查看收到的审批通知。
恭喜
你已完成本教程的全部内容!
现在你已经拥有一个可以正常运行的钉钉小程序。你也可以在其中添加其他功能,参考应用开发了解更多。
你还还可以通过以下方式注册审批事件。
- 注册回调你可以通过以下方法注册或更新企业的回调地址:
- 打开已下载的服务端代码,修改服务端代码
Constant.java
文件中的CALLBACK_URL_HOST
参数,设置成你的回调地址 - 运行CallbackController中的main方法,注册或更新企业的回调地址。
- 当控制台打印出
回调注册成功了!!!
时,表示注册回调成功。
- 接收审批回调
注册完审批回调,当审批被通过或拒绝时,服务端会接收到对应的回调通知,您可以结合您的业务场景做相应的处理。
在本示例中,服务端接收回调后,会给审批发起人发一条工作通知消息。