钉钉开发文档

企业接入审批QuickStart

更新时间: 2019-5-9

本quick start为企业在E应用中接入审批接口示例,用于满足开发者20分钟快速体验钉钉开发。在此demo中,您会在E应用中发起一个审批实例并接收审批回调。
服务端语言为Java,需要具备Java开发环境(安装JDK)以及Java项目构建工具maven。

1.创建E应用

请参考创建应用小节了解如何在开发者后台创建应用。

2.创建审批模板

登录审批管理后台,创建一个用于本次quick start的审批模板。
1)登录OA管理后台,选择【工作台】,点击【审批】。

2)点击【创建新审批】,点击【自定义模板】

3)按照如下的表单样式,从控件库拖入对应的控件。点击【保存并启用】,可以在浏览器的url中找到process_code参数,记下来,服务端开发时会用到,模板样式见下图:

其中,
【行程明细】是明细控件,
【出差地点】是单行输入框,
【图片】是图片控件,
【开始时间,结束时间】是日期区间控件,
【出差人数】是数字控件,
【出差金额】是金额控件,
【出差同伴】是单选框控件(添加的时候,把选项改为A,B,C),
【交通工具】是单行输入框,
【出差事由】是多行输入框。

4)设置完成保存,进入流程设计模块,设计专有的审批流程。注意,如果想复用审批后台设置的流程,在调用发起审批实例接口的时候,不要传审批人参数。

3.服务端开发

服务端代码下载

git clone https://github.com/opendingtalk/eapp-corp-project

导入服务端代码并修改配置

更改服务端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 = "***";

CORP_ID可以在开发者后台首页中获取到,
image.png

APPKEY、APPSECRET、AGENTID可在开发者后台企业自建应用查看详情获取到,如下图所示:
image.png

image.png
再点击"查看详情",可以获取应用的AppKey、AppSecret和AgentId。
image.png

ENCODING_AES_KEY和TOKEN可以按照注释来设置,PROCESS_CODE可以在【钉钉管理后台-审批-编辑表单-顶部URL】中找到。

更改application.properties,此步骤非必须。

#服务启动端口号,钉钉云ECS目前只开放80和22端口
server.port=8080

代码打包编译

进入项目文件路径,代码编译。

mvn clean compile -U

代码打包,生成可运行的jar文件。

mvn clean package -Dmaven.test.skip=true

启动服务端程序

执行Java命令启动程序(jar文件执行路径请根据您所在目录酌情选择)

java -jar target/eapp-corp-project-1.0.0.jar

程序启动成功如下图所示,

检查启动成功页面

访问http://localhost:8080/welcome 地址,打开页面如下图所示,

4.前端开发

前端代码下载

git clone https://github.com/opendingtalk/eapp-corp-project-fe

下载E应用IDE开发工具并导入前端代码

E应用IDE开发工具,下载链接
打开E应用前端IDE,打开项目,选择项目路径,设置项目类型为企业内部应用。


修改前端配置

修改文件eapp-corp-project-fe/page/index/index.js。
IP端口为本机的IP和PORT,注意url中的IP或者域名必须是开发者后台台中设置的本应用的安全域名。

E应用前端发起网络请求时是直连安全域名或IP的,因此假如您的前端demo和服务端demo都在一个办公环境内(比如都在您的PC电脑上),是可以直接互通的,因此可以设置任何您的前端所在环境能连接到的域名或IP为安全域名。
您也可以通过钉钉提供的内网穿透工具生成一个临时二级域名设置为安全域名,用于测试应用。

//内网穿透工具介绍:
// https://open-doc.dingtalk.com/microapp/debug/ucof2g
//替换成开发者后台设置的安全域名
let url = "http://********";

模拟器体验

完成上述域名修改,在IDE里点击“预览”按钮并进行扫码登陆后,选择对应的关联应用,可以直接使用IDE进行模拟器体验,如下图所示:
image.png

点击【发起审批】,即可在审批微应用里发起一个审批实例。
注意,为了保持代码的简洁,本次demo发起的审批实例中,审批发起人、审批人和抄送人都是同一个用户,即当前免登的用户。

查看钉钉,会收到审批通知。

5.审批回调

如需要本地调试审批回调,必须先用内网穿透工具生成一个临时二级域名来注册回调接口。

注册回调

关于如何注册回调,我们已经在企业接入审批流程中详细说明,在QuickStart中,您可以直接运行CallbackController中的main方法,来注册或更新一下企业的回调。在此之前,您需要修改服务端代码Constant.java文件中的CALLBACK_URL_HOST参数,把它设置成您使用内网穿透工具生成的临时二级域名,比如http://abcde.vaiwan.com。
设置完成后,让我们直接运行CallbackController中的main方法来注册审批回调。当在控制台打印出“回调注册成功了!!!”时,表示注册回调成功。

接收审批回调

注册完审批回调,当审批被通过或拒绝时,服务端会接收到对应的回调通知,然后做相应的处理。在本次QuickStart中,接收回调后,会给审批发起人发一条工作通知消息。

祝贺您已经成功体验本QuickStart。

以上内容是否对您有帮助:
在文档使用中是否遇到以下问题(多选):
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示例
  • 太简单/步骤待完善
手机号
更多建议
提交成功,感谢您的反馈!