我一直在尝试在我的 php 项目中显示 power bi 报告,而无需登录 power bi 帐户。
尽管我已经尝试过一切,这是最后一个教程,我真的认为它会起作用,但事实并非如此。
通过该教程,我能够生成/获取所需的所有凭据,例如:服务主体、ClientId、TenantId、ClientSecret、WorkspaceId 和 ReportId。
我使用了.net示例,因为我更熟悉它。我填写了 .net 示例中的所有凭据,但当我运行该项目时,出现“NotFound”错误。
"error": {
"code": "PowerBIEntityNotFound",
"pbi.error": {
"code": "PowerBIEntityNotFound",
"parameters": {},
"details": [],
"exceptionCulprit": 1
}
}
}
我不确定如何调试它,如何确保所有内容都已在 power bi、azure 和所有凭据中设置?
我也尝试了this,我能够生成访问令牌,但是当尝试通过此API获取报告详细信息时https://api.powerbi.com/v1.0/myorg/groups/{group- id}/reports/{report-id}/GenerateToken 我收到 401 未经授权的错误。
最后我迷失了方向。怎样才能达到最初的目标呢?
更新:
我按照教程制作了一份报告,该报告位于 https://app.powerbi.com/ 中的“我的工作区”。 我已经读过,为了制作我想要的内容,我需要创建一个新的工作区,所以我这样做了并将报告复制到新的工作区。 那也行不通。 所以我严格遵循了我第一次提到的教程,即我使用了与它使用的相同的报告,covid 报告,并复制了这些步骤,它起作用了!
我认为问题可能与报告、数据集或我与数据集的连接方式有关。 我对 power bi 概念不了解,但是您如何制作报告或如何与数据源连接是否有任何限制会妨碍您嵌入它?或者是否需要该教程未提及的一些步骤?
如果您错过在 Power BI 工作区下将服务主体添加为
Admin
或,则可能会出现错误Contributor
401 未经授权。
最初,我注册了一个名为
SriPowerBiEmbed
的 Entra ID 应用程序,并在其中创建了一个 客户端密钥,如下所示:
现在,我使用 客户端凭据流通过 Postman 生成了一个不记名令牌,参数如下:
POST https://login.microsoftonline.com/tenantId/oauth2/v2.0/token
grant_type:client_credentials
client_id: appId
client_secret: secret
scope: https://analysis.windows.net/powerbi/api/.default
回复:
当我尝试使用以下 API 获取报告详细信息时,我也收到了 401 Unauthorized 错误,如下所示:
GET https://api.powerbi.com/v1.0/myorg/groups/{group-id}/reports/{report-id}
回复:
要解决该错误,请确保将您的 Entra ID 应用程序 添加到具有 Admin 访问权限的 Power BI 工作区。
转到 Power BI 门户 -> 您的工作区 -> 单击 ... -> 管理访问 -> +添加人员或组 -> 搜索服务主体及其名称 -> 管理员
此外,通过检查管理门户来检查访问权限是否启用以使用 Power Bi API,如下所示:
现在,当我调用相同的 Power BI API 时,我再次生成了令牌并成功获得了包含报告详细信息的响应,如下所示:
GET https://api.powerbi.com/v1.0/myorg/groups/{group-id}/reports/{report-id}
回复:
您现在可以通过使用相同的不记名令牌调用下面的 Power BI API 来创建 嵌入令牌,如下所示:
POST https://api.powerbi.com/v1.0/myorg/groups/{group-id}/reports/{report-id}
{
"accessLevel": "View",
"allowSaveAs": "true"
}
回复: