You need to enable JavaScript to run this app. 调用Power BI API Datasets - Get Refresh History检索记录报错求助
优惠活动
大模型
产品
解决方案
定价
更多

调用Power BI API Datasets - Get Refresh History检索记录报错求助

问题说明

我正尝试通过PowerShell脚本调用Power BI REST API获取每个数据集的刷新日志,运行时遇到报错,错误截图如下:
错误截图


解决方案

按以下步骤逐一排查即可解决:

  • 权限配置校验
    调用API使用的身份主体(账号/服务主体)必须满足权限要求:
    • 若使用服务主体调用,需要在Azure AD应用注册中为Power BI API授予Dataset.Read.All或Dataset.ReadWrite.All的应用权限,且已完成管理员同意
    • 若使用个人账号委托调用,需要确保账号是目标数据集所属工作区的成员/管理员,或是数据集所有者
    • 若数据集存放在Power BI Premium容量,还要确认身份主体有对应容量的访问权限
  • 认证逻辑校验
    确保获取的访问令牌受众正确,避免因令牌无效触发报错,可参考以下标准令牌获取代码:
    $tenantId = "替换为你的租户ID"
    $clientId = "替换为你的Azure AD应用客户端ID"
    $clientSecret = "替换为你的应用客户端密钥"
    
    $authUrl = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"
    $authBody = @{
        grant_type = "client_credentials"
        client_id = $clientId
        client_secret = $clientSecret
        scope = "https://analysis.windows.net/powerbi/api/.default"
    }
    $tokenRes = Invoke-RestMethod -Uri $authUrl -Method Post -Body $authBody
    $accessToken = $tokenRes.access_token
    
  • 请求参数校验
    确保请求URL中的占位符已替换为真实ID,可参考以下标准请求代码:
    # 个人工作区数据集请求示例
    $datasetId = "替换为你的数据集ID"
    $apiUrl = "https://api.powerbi.com/v1.0/myorg/datasets/$datasetId/refreshes"
    
    # 其他工作区数据集请求示例,需替换工作区ID
    # $groupId = "替换为你的工作区ID"
    # $apiUrl = "https://api.powerbi.com/v1.0/myorg/groups/$groupId/datasets/$datasetId/refreshes"
    
    $headers = @{
        Authorization = "Bearer $accessToken"
    }
    $refreshHistory = Invoke-RestMethod -Uri $apiUrl -Headers $headers -Method Get
    # 输出刷新日志
    $refreshHistory.value
    
  • 限流处理
    若调用频率过高触发接口限流,可在两次请求之间添加2-5秒的等待间隔,避免触发频次限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 18:06:04