开发者学堂课程【4节课走进 RPA 低代码开发 :服务端 API 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/740/detail/13121
服务端 API 介绍
内容介绍:
一.服务端 API 是什么
二.服务端 API 的使用场景
三.服务端 API 的分类
四.使用文档的参考
一.服务端 API 是什么?
问题:服务端 API 是什么呢?有啥妙用呢?
答:阿里云 RPA 的服务端 API 就是阿里云提供给第三方使用的接口,通过代码中对接口的调用来实现跟 RPA 服务相关的功能。这些接口可以操作机器人进行相关的任务执行、查看执行结果、查看相关日志等功能。直接通过代码对接口的调用,来实现跟 API 服务相关的功能,更大程度的实现API的可被集成性。
二.服务端 API 的使用场景
1.问题:第三方的系统如何和机器人进行交互?
答:阿里云 RPA 的服务端 API 能够把 RPA 的机器人执行当做一种服务以 http 接口方式提供给第三方系统,实现了第三方系统和机器人的交互。
2.问题:在某些需要实现业务中,数据有时需要实现交互,如编写流程中需要访问另一个系统处理业务并获取到返回结果后才能继续进行,这种情况该怎么办呢?
答:阿里云 RPA 机器人之间可以实现数据交互。将获取另外一个系统的操作编写成应用并发布,然后使用 API 接口去调用这个应用,让 B 机器人执行任务并把结果返回。这样 A 机器人在执行主流程时就能保证在不中断的情况下实现所有的功能。
3.问题:怎样保证每次访问接口时的安全性?
答:服务端的 API 接口对于每一次 HTTP 或者 HTTPS 协议请求,都会根据访问中的签名信息验证访问请求者身份。需要使用AccessKeyid 和 AccessKeySecret(控制台获取)对称加密验证实现。
这两个参数可以在阿里云API 控制台设置中去获取,加密的具体办法在后续高级课程中讲解,此处暂不做赘述。
接下来讲解服务端 API 的分类。
三.服务端 API 的分类
服务端 API 包括机器人、应用、任务和文件相关的接口类型,共开放四十多个接口。
1.机器人相关接口功能:
包括查询机器人信息、更新机器人认证状态、更新机器人调度状态等。
2.应用相关接口功能:
包括获取应用列表、申请应用、审批应用等。
3.任务相关接口功能:
包括创建计划任务、服务型任务、查看任务状态及结果、以及查询相关日志等。
4.文件相关接口功能:
包括上传文件等。接下来参考相关文档。
四.使用文档的参考
阿里云 RPA 服务端 API 支持基于 URL 发起 HTTP/HTTPS GET/POST 请求,所有的请求参数都包含在 URL 中。
1.请求方法
GET/POST
2. 请求 host
公共云:https://api-rpa.aliyun.com
私有云:企业私有化部署的环境
3.请求路径
根据请求的接口来定义,参考文档:https://help.aliyun.com/document detail/175379.html根据参考文档,从 API 概览这里,可以看到接口的分类,以及请求的方法、路径,以及每个接口的含义。
在发送请求时,需要请求参数,请求参数包括公共请求参数和指定接口参数。
4.公共请求参数
参考文档:https://help.allyun.com/document detail/175390.html
5.指定接口参数
该参数为不同接口所需的参数
6.返回参数类型
JSON
7.返回参数介绍
参考文档:https://help.aliyun.com/document detail/175392.html
接下来参考文档,具体来看下。
首先,公共请求参数共八个参数。
AccessKeyid 是访问密钥,可以通过控制台去获取。Signature 是通过一些签名机制生成的参数,生成的方法参考。
下面这篇签名机制的这篇文档,在高级课程中会讲解到此签名生成方法,此处不再做过多赘述。
其他参数可以根据它的说明来具体查看它的使用方法
注意,这里的时间戳,要按照指定的格式来生成。
指定的接口参数,需要看具体的每个接口文档。在这个服务端 AI 的这个目录下,有机器人客户端应用任务文件的目录分类,在每个目录下可以看到具体的接口文档。
机器人客户端 queryClientViews 接口文档:
从这篇文档,可以看到请求调用地址、调用方式,该接口独有的请求参数以及返回的参数说明、请求返回示例等。大家可以参考文档来学习服务端 API。
接下来,一起看下服务端 API 使用的示例。
使用接口创建一个服务型任务去执行一个应用,该应用是提前准备好的。
from rpa.core import *from rpa.utils import *import rpa4 as rpa
#使用 v4 引擎
def start():# 在此处开始编写您的应用 print('开始')page = rpa.app.ie.create('www.baidu.com')page.input_text('百度输入框','电脑')page.click('百度一下按钮',button='left',simulate=True,index=1)page.close()print('结束')
rpa 接口测试主要实现了使用 IE 打开一个百度界面,输入关键字电脑后并点击使用接口调用该应用的前提。
第一需要将应用发布至企业应用市场,点击发布按钮。填写好相关的参数后,发布地址选择云端,发布类型选择应用。
点击确定后,就可以在控制台看到该应用。
发布后的应用需要申请并审批通过后才可以使用。
有两种方式可以申请,一种是通过接口,服务端有申请应用以及审批应用的接口,调用该接口后,可以实现应用审批的工作。
申请应用以及审批应用的接口。在应用目录下,applyApp 以及 approve,就是这两个接口的文档,大家可以参考一下。
另外一种就是直接在控制台审批应用,在控制台企业应用这里,可以看到刚刚发布的 rpa 接口测试应用。
点击操作、分配。
选择分配成员,就可以在我的应用这里看到,刚刚申请的应用。准备工作做好后,来看一下创建服务型任务的接口文档。
在任务 createServiceTask 这个文档,可以看到调用的地址以及调用方式。可以看到,除了公共参数,该接口中还需要传入独有的请求参数。
Appid 是必选参数,其他参数为非必选。这里为了演示得更清晰,添加 clientid 这个参数,机器人的 id。使用该台电脑的机器人可以保证任务是在该台电脑上执行的,能直观的看到任务的执行。clientid 这个参数既可以使用接口去获得,也可以直接在机器人中查看这个 id。接口需要使用这个 queryClientViews 接口。
添加机器人名称这个参数,就能精准的获取到机器人的 id。
以 POST 为例,
该接口的调用结果获取机器人信息,可以看到,一些公共请求参数以及独有的 clientName,这个机器人的名称为测试机器人,机器人的名称可以在阿里云 rpa 机器人客户端首选项机器人这里,
查看他的名字,也可以在这里修改他的名字。并且查看他的返回结果,返回结果中包含各种信息。
这个 uuid 参数,即为机器人的 uuid,除了使用接口调用获取之外,同时,可以直接在机器人客户端中查看该uuid。在设置-关于中,可以看到机器人的 id,对比接口调用,以及直接查看的两个 uuid 是一致的。
创建服务型任务除了需要客户端 uuid 参数之外,还需要一个必填的应用 id,即 appId 这个参数是必填的。
通过调用接口可以获取到这个参数,在应用- queryApps 这个接口中,可以获取到这个参数。在请求中添加appName 这个参数可以精准的查到想要执行的应用的 uuid,他的返回结果中 uuid 即为 appid
可以在 POST 中看到这个请求,参数包括公共请求参数以及独有的 appName 这个参数。
这个应用实行的内容是 rpa 接口测试,请求的返回结果包含各种信息,其中这个 uuid 即为 appid,获取到之后,使用 POST 调用一下服务型任务的接口去执行一下这个任务。需要注意的是,公共请求参数中的 signature 生成方法较为复杂,在接下来的高级课中讲解,获取到的这些信息时效只有十几分钟,所以这里需要重新生成一下。
现在已经拿到新的一些信息了,需要将之前公共请求参数中的发生变化的参数替换一下。
<clas3 'dict'>: ('AccessKeyId': 'f8cd79977657e3d1', 'Format': 'json', 'SignatureMethod': 'HMAC-SHA1', 'SignatureNonce': 'cwagvmzpfdbqklxsrjytuieohn','SignatureVersion': '1.0', 'Timestamp': '2020-08-12T09:44:212', 'Version': '20200430', 'appId': '88075d59-2a0e-4ec0-9a6d-c7adf0b24009', 'clientId':·081054D2998C14DCA43D734F4BEB86BE', ·Signature': b'jCVz9iUu4V7iSWNav50enmn+/RI-')
signature 信息也需要更换一下,还有这个时间戳的信息。
这里的 appid 就是刚才获取的,clientid 也是刚才获取的,替换成功后,点击。
可以看到,任务正在执行。
在控制台计划任务服务型任务这里,可以查看刚才执行的任务,查看批次信息,查看运行结果,在这里可以看到运行日志。这个日志是代码里面写的。
执行这些任务的时候需要注意两点,一点是需要这个机器人是空闲状态,需要把它打开。另一方面是需要他的认证状态是已认证。
具体的操作方法,参考官网的阿里云 rpa 文档操作。