使用 API 从 Power BI 报告中检索角色

问题描述 投票:0回答:1

我有一个启用了行级安全性 (RLS) 的 Power BI 报表。我正在尝试使用嵌入方法将其集成到网络应用程序中。为了生成嵌入令牌,请求正文应如下所示。

从“axios”导入axios;

const options = {
  method: 'POST',
  url: `https://api.powerbi.com/v1.0/myorg/groups/${groupID}/reports/${reportID}/GenerateToken`,
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Bearer '
  },
  data: '{accessLevel: 'View', "identities": [{"username": '', "reports": [''], "roles": [''], "datasets": ['']}]}'
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});

如您所见,我需要获取用户名、报告 ID、角色和数据集。获取用户名、报告 ID 和数据集 ID 就可以了。我可以使用一些 API 来获取该信息。但是,问题在于获取用户角色。

目前,我正在使用以下 API 来获取用户角色。

GET https://api.powerbi.com/v1.0/myorg/admin/workspaces/scanResult/{scanId}

但是,它需要扫描 ID,我正在使用下面的 API 来获取扫描 ID。但是,有时我没有从该 API 得到预期的响应。看来获取数据需要一些时间。

https://api.powerbi.com/v1.0/myorg/admin/workspaces/getInfo?lineage=True&datasourceDetails=False&datasetSchema=True&datasetExpressions=True

https://learn.microsoft.com/en-us/rest/api/power-bi/admin/workspace-info-post-workspace-info

如果有人知道不同的解决方案或解决方案,请与我分享。

powerbi powerbi-desktop powerbi-embedded row-level-security
1个回答
0
投票

您需要另外实现一个轮询步骤,您需要等待扫描状态成功。

使用此 REST API Admin - WorkspaceInfo GetScanStatus 获取扫描状态。一旦状态为成功,您就可以使用您提到的 API 获取指定扫描的扫描结果。

© www.soinside.com 2019 - 2024. All rights reserved.