云开发小课-OA 物品领用

本文我们将以云开发这个场景来讲解怎么使用OA 物品领用的能力。首先这节课需要两个前置条件。

1. 需要有一个钉钉组织。这个钉钉组织需要在钉钉的站点里去申请创建。

2. 钉钉组织需要在钉钉开放平台里绑定阿里云主账号,钉钉账号也要绑定一个阿里云账号。因为钉钉和阿里云的账号体系是两套,所以这两个要做一个绑定关系。

下面是实操过程:

一、应用创建

应用创建包括两部分,一个是钉钉应用的创建,另外一部分是云开发平台的应用创建。钉钉应用相当于一个实体,云开发平台的应用是一个代码工程。

二、应用配置管理

OA 物品领用的能力很大一部分都需要做一些配置。主要包括三部分:

事件定义

API权限管理。

OA 审批单。

这几个配置都需要在钉钉开放平台完成。

三、应用开发

应用开发就是一个写代码的过程,比如调用一个API,比如怎么去发消息,这些就会涉及到调用API的过程,而这个过程会涉及到两部分,第一个是输入参数,需要准备哪些参数?第二个是参数传递进去后,响应内容是什么?只要掌握了这两部分,基本上就可以在实际写代码的过程中灵活使用API了。云开发拥有断点调试功能,可以看到里面的输入输出参数。

四、实操

首先,用自己创建好的组织扫描登录到钉钉开放平台。

选择创建应用应用的组织。

进入钉钉开放平台后,创建一个应用,如下图,选择应用类型,开发方式,填写应用名称、应用自述。

点击开发管理右下角的按钮,去开发。
在云开发平台创建应用中编程语言选择java。然后通过模板创建,选择OA 物品领用。
下一步,计算服务我们采用函数计算,区域可以根据自己钉钉应用部署的区域选择,最后点击完成创建。

可以看一下应用配置,这里会把appkey,appsecret这两个词都通过接口的方式从钉钉开放平台传递过来。这个就是消息定义的时候需要用到的,现在这个值是应用模板默认配置的,等下我们把要这个值替换掉。

下面我们进入在线开发部署。打开Cloud IDE。

然后先配置一下这些应用。
这些参数我们都可以在ReadME里看到。
配置完,我们回到云开发平台启动一下。然后这个服务启动的是一个8080端口,我们在这里把地址映射出来。
现在我们已经在开发平台里把这个地址映射出来了,这个就是物品里demo的一个前端页面,如下图:
我们把映射出来的地址拷贝到云开发这里,在这里回调地址。
然后我们把加密aes_key和签名token这两个参数也拷贝回来。大家不要用我这个aes_key,因为这个是每个应用对应的。保存一下,它会做一个测试。
现在基本上这个应用就启动了,但其实业务还没跑动起来,接下来我们还要在钉钉开放平台里做一些配置。
首先要把事件订阅中“审批任务开始、结束、转交”和“审批实例开始、结束”打开。当这两个流程在钉钉内部启动时,就会发相应的消息到钉钉里。
其次权限管理中,需要在通讯录管理中打开“成员信息读取权限”,智能工作流中打开“企业调用接口执行审批操作的权限”和“审批流数据管理权限”,如下图:
还有一个表单权限,表单权限需要到工作台里去创建。我们切换到组织上,在工作台中进入OA 审批。这里有很多模板审批单,大家可以在这里去创建OA 物品领用的表单。
在OA申请的链接里有一个流程编号,我们把这个编号拷贝到应用配置里。
下图是流程编号拷贝到的位置:
现在API权限、事件订阅、OA 审批单这三个步骤都弄好以后,我们就可以在Verde里把这个应用跑起来了。
那这里还要做什么操作呢?需要把这个地址配置到钉钉应用的主入口页面上。
现在我们就可以在手机端访问这个钉钉应用了。申请成功后,钉钉里也会有相应的消息提醒。
如何查看、调用输入输出参数?
首先我们看一下回调这个接口是怎么操作的。我们刚才只看到日志没有断点调试,我们在这加个断点,如图:
回到刚才那个应用,我们再来操作一次,或者我们也可以在事件订阅里保存,它就会做一次测试事件,这就是一个回调的断点调试。
我们也可以在创建流程里打个断点,然后我们在手机上操作一下。
提交好OA物品领用申请后,这里断点就已经拦截住了,我们可以看一下这里的输入输出参数,这里的request 是输入参数,response是输出参数。
如何部署钉钉应用?
我们部署的是日常环境,所以选择日常环境。部署的时候会输出一个域名出来,我们把这个服务停掉。这个应用部署完了会生成另外一个临时域名出来,那这个域名它其实是回传给钉钉开放平台了。
上图就是回传回来的域名。我们用这个替换掉刚才的测试域名,这个就是启动的域名,当然事件订阅也要做修改。保存好后,这个钉钉应用其实就已经发布到线上了,然后我们就可以在手机端正常访问这个应用了。

最后阿里云开发平台为了让用户更好的体验该平台特此准备了10元无门槛代金券:

https://workbench.aliyun.com/activities/coupon

上一篇:

下一篇: