You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过应用注册或服务主体调用REST API获取Power Automate数据?

使用应用注册/服务主体通过REST API获取Power Automate数据

核心结论

完全可以通过应用注册(服务主体)结合Power Automate相关的REST API实现你的需求,替代手动PowerShell脚本的方式,实现持续化的数据获取。Power Automate的元数据存储在Dataverse中,所以主要调用的是Dataverse API和Power Platform管理API。

必要前提

  • 已完成应用注册,且已添加对应的Dataverse应用权限(比如Environment.Read.All、Flow.Read.All、App.Read.All等,根据你需要获取的资源范围选择),并完成管理员同意。
  • 服务主体需要拥有目标Power Platform环境的相应访问权限(比如环境读者权限),确保能读取流、应用的元数据。

具体实现步骤

1. 获取服务主体的访问令牌

使用OAuth 2.0客户端凭证流获取访问令牌,请求示例:

POST https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id={你的应用客户端ID}
&client_secret={你的应用客户端密钥}
&scope=https://{环境域名}.crm.dynamics.com/.default

提示:{环境域名}可在Power Platform admin中心的环境详情页找到,是目标Dataverse环境的唯一域名。

2. 调用REST API获取数据

获取所有环境

调用Power Platform管理API:

GET https://api.powerplatform.com/environments?api-version=2020-10-01
Authorization: Bearer {获取到的访问令牌}

获取单个/多个流

流对应的Dataverse实体是workflows,用以下请求:

  • 获取所有Power Automate流:
GET https://{环境域名}.crm.dynamics.com/api/data/v9.2/workflows?$filter=category eq 0
Authorization: Bearer {获取到的访问令牌}

category eq 0用于筛选出Power Automate流(排除Dataverse原生工作流)

  • 获取单个指定流:
GET https://{环境域名}.crm.dynamics.com/api/data/v9.2/workflows({流ID})
Authorization: Bearer {获取到的访问令牌}

获取单个/多个应用

画布应用对应的Dataverse实体是canvasapps,请求示例:

  • 获取所有画布应用:
GET https://{环境域名}.crm.dynamics.com/api/data/v9.2/canvasapps
Authorization: Bearer {获取到的访问令牌}
  • 获取单个指定应用:
GET https://{环境域名}.crm.dynamics.com/api/data/v9.2/canvasapps({应用ID})
Authorization: Bearer {获取到的访问令牌}

持续化方案建议

  • 将令牌获取、API调用逻辑封装成可复用的脚本或服务(比如Python、C#服务),设置定时任务或按需触发,替代手动执行PowerShell的方式。
  • 注意访问令牌默认1小时过期,需要在代码中实现自动刷新机制,确保服务持续可用。

内容的提问来源于stack exchange,提问作者codeOverLoad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:37:38