当前位置: 首页 > news >正文

UiPath API 调用文档

文章目录

    • 1. GetToken
    • 2. GetFolders
    • 3. GetReleases
    • 4. StartJobs


注意: 本文内容皆为Python环境演示

your_domain:你的UiPath Orchestrator 地址【不懂得去登录Orchestrator来回登录各个界面,始终不变的那一段就是 -_- 】

1. GetToken

此接口用于获取access_token

请求类型 (Request Method):
POST

请求地址 (Request Url):
{your_domain}/identity/connect/token

请求正文 (Request Body):

参数名称类型默认值不为空描述
grant_typestrclient_credentialsTrue填写默认就行
client_idstrTrueAPI ID
client_secretstrTrueAPI SECRET
scopestrTrue作用域,根据后续调用API需要的权限进行配置,多个值之间空格进行分割,文章皆为会进行简单介绍

示例如下:

def get_access_token():url = f"{your_domain}/identity/connect/token"req_data = {"grant_type": "client_credentials","client_id": client_id,"client_secret": client_secret,"scope": "OR.Jobs OR.Settings",}result = requests.post(url, data=req_data)print(f"access_token 获取状态: {result.status_code}")print(f"access_token: {json.loads(result.text)['access_token']}")

响应正文:

  • code 200: 成功
{"access_token": "",   // token内容"expires_in": 3600,"token_type": "Bearer",  // token头"scope": ""   // 你刚开始授权的作用域
}

2. GetFolders

未通过此接口获取文件夹key时, 执行其他api操作通常会产生错误: 此操作需要一个组织单位

请求类型 (Request Method):
GET

请求地址 (Request Url):
{your_domain}/odata/Folders

请求头 (Request Headers):

参数名称类型默认值不为空描述
AuthorizationstrBearer {access_token}Trueaccess_token 来自/identity/connect/token
Acceptstrapplication/jsonTrue

示例如下:

def get_folders(access_token):url = f"{your_domain}/odata/Folders"headers = {"Authorization": f"Bearer {access_token}","Accept": "application/json",}result = requests.get(url, headers=headers)print(f"响应状态:{result.status_code}")print(f"响应内容:{result.text}")

响应正文:

  • code 200: 成功
响应内容:
{"@odata.context": "https://xxxxx/odata/$metadata#Folders","@odata.count": 21, // 返回value数量"value": [{"Key": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",  // 文件夹key, 调用其他接口所需"DisplayName": "文件夹名称", // 文件夹展示名称"FullyQualifiedName": "文件夹名称", // 文件夹全称"FullyQualifiedNameOrderable": "文件夹名称","Description": null,"FolderType": "Standard","ProvisionType": "Automatic","PermissionModel": "FineGrained","ParentId": null,"ParentKey": null,"IsActive": true,"FeedType": "Processes","Id": 4,}]}

3. GetReleases

此接口用于获取启动作业所需的release_key

请求类型 (Request Method):
GET

请求地址 (Request Url):
{your_domain}/odata/Releases

请求头 (Request Headers):

参数名称类型默认值不为空描述
AuthorizationstrBearer {access_token}Trueaccess_token 来自/identity/connect/token
Acceptstrapplication/jsonTrue
X-UIPATH-FolderKeystrTrue操作文件夹对应的key, 通过/odata/Folders获取

示例如下:

"""
access_token: token
folder_key: 操作文件夹对应的key, 来自/odata/Folders
"""
def get_realeases(access_token, folder_key):url = f"{your_domain}/odata/Releases"headers = {"Authorization": f"Bearer {access_token}","accept": "application/json","X-UIPATH-FolderKey": folder_key,}result = requests.get(url, headers=headers)print(f"响应状态: {result.status_code}")print(f"响应正文: {result.text}")

响应正文:

  • code 200: 成功
响应内容:
{"@odata.context": "https://xxxxxxxx/odata/$metadata#Releases","@odata.count": 2,"value": [{"Key": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",  // 流程key, 用于启动作业"ProcessKey": "包来源名称-测试", // 包来源名称"ProcessVersion": "1.0.6",  // 包版本"IsLatestVersion": false,"IsProcessDeleted": false,"Description": "描述",  // 流程描述"Name": "流程名称",  // 流程名称"EnvironmentId": null,"EnvironmentName": "","EntryPointId": 2,"EntryPointPath": null,"InputArguments": null,"ProcessType": "Process","SupportsMultipleEntryPoints": true,"RequiresUserInteraction": true,"IsAttended": false,"IsCompiled": false,"AutomationHubIdeaUrl": null,"AutoUpdate": false,"HiddenForAttendedUser": false,"FeedId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx","JobPriority": "Normal","SpecificPriorityValue": 45,"OrganizationUnitId": 21,"OrganizationUnitFullyQualifiedName": "文件夹名称","TargetFramework": "Legacy","RobotSize": null,"AutoCreateConnectedTriggers": true,"RemoteControlAccess": "None","LastModificationTime": "时间","LastModifierUserId": 9,"CreationTime": "时间","CreatorUserId": 9,"Id": 2,}]
}

4. StartJobs

此接口用于启动作业

请求类型 (Request Method):
POST

请求地址 (Request Url):
{your_domain}/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs

请求头 (Request Headers):

参数名称类型默认值不为空描述
AuthorizationstrBearer {access_token}Trueaccess_token 来自/identity/connect/token
Acceptstrapplication/jsonTrue
Content-Typestrapplication/jsonTrue
X-UIPATH-FolderKeystrTrue操作文件夹对应的key, 通过/odata/Folders获取


请求正文 (Request Body):

参数名称类型默认值不为空描述
startInfodictstartInfoTrue千万注意层级哦
  • startInfo
参数名称类型默认值不为空描述
ReleaseKeystrTruerelease_key 来自/odata/Releases
JobsCountnum1True作业数
JobPrioritystrNormalTrue优先级
StrategystrModernJobsCountTrue策略
ResumeOnSameContextbooleanFalseTrue
RuntimeTypestrUnattendedTrue

示例如下:

"""
access_token: token
release_key: 流程key
folder_key: 文件夹key
"""
def start_jobs(access_token, release_key, folder_key):url = f"{your_domain}/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs"req_data = {"startInfo": {"ReleaseKey": release_key,  # 流程id"JobsCount": 1,  # 作业数"JobPriority": "Normal",  # 优先级"Strategy": "ModernJobsCount","ResumeOnSameContext": False,"RuntimeType": "Unattended",}}headers = {"Accept": "application/json","Content-Type": "application/json","Authorization": f"Bearer {access_token}","X-UIPATH-FolderKey": folder_key,}result = requests.post(url=url, data=json.dumps(req_data), headers=headers)print(f"响应状态: {result.status_code}")print(f"响应正文: {result.text}")

响应正文:

  • code 200: 成功
{"@odata.context": "https://xxxxxx/odata/$metadata#Jobs","value": [{"Key": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx","StartTime": null,"EndTime": null,"State": "Pending","JobPriority": "Normal","SpecificPriorityValue": 45,"ResourceOverwrites": null,"Source": "Manual","SourceType": "Manual","BatchExecutionKey": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx","Info": null,"CreationTime": "时间","StartingScheduleId": null,"ReleaseName": "Java","Type": "Unattended","InputArguments": null,"OutputArguments": null,"HostMachineName": null,"HasMediaRecorded": false,"HasVideoRecorded": null,"PersistenceId": null,"ResumeVersion": null,"StopStrategy": null,"RuntimeType": "Unattended","RequiresUserInteraction": true,"ReleaseVersionId": null,"EntryPointPath": "Main.xaml","OrganizationUnitId": 21,"OrganizationUnitFullyQualifiedName": null,"Reference": "","ProcessType": "Process","ProfilingOptions": null,"ResumeOnSameContext": false,"LocalSystemAccount": "","OrchestratorUserIdentity": null,"RemoteControlAccess": "None","MaxExpectedRunningTimeSeconds": null,"ServerlessJobType": null,"Id": 4262,}],
}

相关文章:

  • \r在C语言中是什么意思(通俗易懂,附带实例)
  • 算力网络的早期有关论文——自用笔记
  • PageIndex:构建无需切块向量化的 Agentic RAG
  • 4.19除自身以外数组的乘积
  • Linux第十讲:进程间通信IPC
  • “又见112G” | Samtec和Keysight展示新型112 Gbps PAM4连接性
  • 测试基础笔记第九天
  • 如何收集用户白屏/长时间无响应/接口超时问题
  • DCL介绍
  • 【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-放置标记
  • ctfshow web类 2-7题
  • LLMs可在2位精度下保持高准确率
  • AWS Lambda 架构深入探究
  • 客户端 AI 与服务器端 AI 的深度比较及实践建议?
  • Shader属性讲解+Cg语言讲解
  • 【codeforces思维题】前缀和的巧妙应用(2053B)
  • CF912E
  • 跨团队协作时流程不统一,如何协调
  • HarmonyOS:1.7
  • stm32教程:HC-SR04超声波模块
  • 哈马斯:愿与以色列达成为期5年的停火协议
  • 净海护渔,中国海警局直属第一局开展伏季休渔普法宣传活动
  • 增诉滥用职权罪,尹锡悦遭韩国检方追加起诉
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 经济日报社论:书写新征程上奋斗华章
  • “80后”杨占旭已任辽宁阜新市副市长,曾任辽宁石油化工大学副校长