样例:
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的百度APIKey&client_secret=你的百度SecretKey
参数 |
值 |
access_token |
通过API Key和Secret Key获取的access_token,参考“Token获取” |
参数 |
值 |
Content-Type |
application/x-www-form-urlencoded |
返回参数(这里只展示我们需要用到的返回参数)
字段 |
是否必选 |
类型 |
说明 |
words_result |
是 |
array[] |
识别结果数组 |
words_result_num |
是 |
uint32 |
识别结果数,表示words_result的元素个数 |
+ words |
否 |
string |
识别结果字符串 |
参数详情如下:
请求参数(这里我们只需要对图片进行处理,后续可以根据实际情况扩充)
参数 |
是否必选 |
类型 |
可选值范围 |
说明 |
image |
和 url/pdf_file 三选一 |
string |
- |
图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过10M,最短边至少15px,最长边最大8192px,支持jpg/jpeg/png/bmp格式 |
返回说明
Uipath:添加一个webapi的包,用来发送http请求。
百度智能云:登录百度AI开放平台,申请免费文字识别免费试用额度(所有接口大概都有1000次/月,足够了),地址为百度智能云-登录=
百度智能云官方文字识别官方文档地址:https://ai.baidu.com/ai-doc/OCR/1k3h7y3db。查看帮助文档,获取api接口以及参数,发现调用该接口需要进行两步操作
以下资料来源百度智能云文档,链接为https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
请求URL数据格式
向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:
这里以通用文字识别(高精度版)为例,文档参考链接:https://ai.baidu.com/ai-doc/OCR/1k3h7y3db
请求说明
示例
返回参数(这里只展示我们需要用到的返回参数)
字段 |
是否必选 |
类型 |
说明 |
words_result |
是 |
array[] |
识别结果数组 |
words_result_num |
是 |
uint32 |
识别结果数,表示words_result的元素个数 |
+ words |
否 |
string |
识别结果字符串 |
由于验证码截图和系统登录流程在uipath流程设计里面有涉及,这里就不赘述。这边主要展示请求token与调用文字识别接口的流程设计。
总流程图如下:
流程搭建解析:
http请求
uipath活动-应用程序集成-网页-http请求
根据前面的教程,我们知道这个活动需要填写内容为端点(请求url)、请求方法(post)、以及请求url对应的三个参数。
端点(请求url)为:” https://aip.baidubce.com/oauth/2.0/token”
请求方法:post
选项-参数:(命名严格要求)
grant_type:"client_credentials"
client_id:你申请的百度apikey
client_secret:你申请的百度api secret
输出-响应内容:自定义参数名称(通过ctrl+k命名变量accessToken)
反序列化json
uipath活动-编程-JSON-反序列化JSON
这个活动只需要两个参数,分别为
输入-JSON字符串:http请求活动输出的响应内容的变量accessToken
输出-Json对象:自定义参数变量,这里命名变量json
分配
uipath活动-工作流-控件-分配
该活动就是变量赋值,这里的作用是提取token(请求返回的数据可以参考官方文档https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu)
值:json("access_token").ToString()
受让人:accessToken
这样我们就把需要的token存放到了变量accessToken里面了。
总流程图如下:
流程搭建解析:
这里只对没有出现过的活动进行详细讲述,对于在请求token流程已经出现过的活动,这里就不再赘述,只是把对应的必要的参数展示一下。
截取屏幕截图
uipath活动-用户界面自动化-应用程序-截取屏幕截图
使用方法与获取页面元素属性一样,选取对应的验证码元素之后,定义输出已保存的图像即可。
输出-已保存的图像:自定义变量名称(这里用ctrl+k命名变量img_code)
分配
获取token,把请求token赋值到变量。
将截图图片转换为base64格式。转换方法为img.Base64。
http请求
请求参数如下:
请求url:https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic(百度通用文字识别(高精度版)的请求url,不同类型的接口url不一样)
请求方法:post
选项-标头:固定为Content-Type:application/x-www-form-urlencoded
选项-参数:主要有两个参数,一个请求的token,一个是需要解析的base64类型的图片数据。
输出-响应内容:请求返回的结果,自定义的变量存储。
反序列化json
将步骤三请求结果转换成json对象输出,变量名称可以自定义,这里命名为json。
分配(解析json获得OCR结果)
对json结果进行解析转换为字符串,方法为“json变量("words_result")(0)("words").ToString().Replace(" ","")”
Json数据的结构可以参考官方的文档https://ai.baidu.com/ai-doc/OCR/1k3h7y3db
通过以上所有步骤,我们就完成了通过调用第三方接口去实现文字识别的功能。只要把识别的结果应用到RPA流程设计中,就能够使得RPA实现自动登录业务系统的操作。