问题标签 [powerbi-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
435 浏览

php - 客户端错误:`GET https://api.powerbi.com/v1.0/myorg/datasets` 导致 `401 Unauthorized` 响应 Power BI REST api

我正在尝试使用 PHP(特别是由 tangent 解决方案制作的 SDK:https ://github.com/TangentSolutions/PowerBI-SDK-PHP/ )将数据推送到 Power BI 应用程序(到https://app.powerbi .com)我正在努力。我可以使用 client_credentials 获取访问令牌,并且可以运行 Microsoft 放入文档中的测试 API 调用,但是在我的应用程序中,我一直得到这个 401 Unauthorized 错误,只是试图运行 API 调用来获取数据集。我现在正在测试数据集调用,但我也从其他 API 调用中得到了相同的响应。在 Postman 中运行时,我也可以获得访问令牌并获得 200 响应。我已在 AAD 中正确授予权限(据我所知):

权限1 权限2

我看到有人说使用密码作为获得访问权限的一种方式,我尝试过,但我仍然得到 401 Unauthorized 回复。不过,我更喜欢使用 client_credentials,所以我宁愿不走这条路。

我没有在我注册的应用程序中添加任何范围,因为老实说,这是我第一次使用 AAD,而且我对使用 API 还很陌生,所以我不完全确定这意味着什么或我将作为范围。我认为没有范围可能是个问题,但同样,我能够从 Microsoft 的在线文档中运行测试 API 调用,我不确定这是否表明它应该适用于 REST API。

我能想到的唯一其他问题是我正在使用 Power BI 免费帐户,我不确定我是否真的需要 Pro 帐户才能构建它。我一直无法找到一个直接的答案,但如果有人知道https://app.powerbi.com上的 Power BI 是否使用“嵌入式 REST API”,那么我可能只需要升级我的帐户。如果问题是我缺少其他东西,我还不想升级我的帐户。

0 投票
0 回答
35 浏览

powerbi - Power bi 网关仅适用于一个来源

我有一个 power bi 报告,我想将它连接到具有导入模式的 csv 和具有直接查询选项的 sql 服务器。

我想在 te power bi 服务中上传此报告,因此使用 csv importe 上的数据和通过本地网关的直接查询模式。

当我在 power bi 服务上上传报告时,当我配置网关时,有 sql server 的选项和离线 csv 的选项......而且系统不允许我只选择 sql server 选项。

在此处输入图像描述

在这里,我有一个 sql server 选项,我可以与网关连接并使其正常运行。但我还有另一个选择,即使用导入模式导入的 csv,我不想通过网关连接,因为它是静态数据......问题是,如果我不为两个源选择网关,则应用按钮变灰。

谢谢

0 投票
1 回答
705 浏览

python - Power BI 活动日志 REST API 获取访问令牌

我一直在疯狂地尝试从 Power BI Rest API 中提取活动日志。我可以使用 Microsoft https://docs.microsoft.com/en-us/rest/api/power-bi/admin/getactivityevents中的“试用”方法来做到这一点

我必须登录才能使用此工具,然后我会获得一个有效期为 1 小时的不记名 JWT 令牌,并且可以在脚本内的后续获取请求的标头中使用。但是令牌会在 1 小时后过期,我必须重新登录才能获取新令牌并更新我的脚本。我试图在每次过期时检索 JWT 令牌,而无需通过 GUI 登录。这是为了自动从 Power BI 获取日志以发送到安全应用程序进行分析。在 Azure/Power BI 方面,我使用此链接https://dev.powerbi.com/Apps注册了一个本机应用程序。在 Azure 应用注册中,我已授予该应用所有 API 权限。

我有一些使用我试图在这里工作的 adal 库的示例 python 代码。我猜 Powershell 解决方案也是可以接受的,但我更喜欢使用 python。

这段代码给了我一个空的响应。如果我粘贴使用“试用”工具登录时生成的 access_token,它就可以工作。如果可能,我会尽量避免手动登录,因为此脚本将作为计划任务运行。我会很感激这方面的任何帮助,因为我正疯狂地试图让它发挥作用。

0 投票
0 回答
57 浏览

powerbi - Power Bi Api - 不支持服务主体身份验证

我正在尝试使用函数应用程序为我们组织中的所有 Power Bi 应用程序提取数据。

我正在阅读 Power BI APi 的文档: https ://docs.microsoft.com/en-us/rest/api/power-bi/apps/getreport

虽然我真的不明白它说:

所需范围:Report.ReadWrite.All 或 Report.Read.All 要设置权限范围,请参阅注册应用。

同时它说:

“限制:不支持服务主体身份验证。”

我真的很想使用服务主体。:/

0 投票
1 回答
92 浏览

powerbi - 自动导出 PowerBi 可视化数据?

我需要跨多个已发布报告自动提取 PowerBI 可视化的原始数据。

为什么不直接提取底层数据集?因为可视化使用 PowerBI 的异常检测功能,其中包括基础数据集中不可用的异常标志(基本上,可视化包含主 PowerBI 数据模型中不包含的计算列)

理想情况下,最好使用 REST API 解决方案,但转储 CSV 文件或其他更迂回的方法是可以的。

到目前为止,我能看到的最接近的功能是这里的 Javascript API - https://docs.microsoft.com/en-us/javascript/api/overview/powerbi/export-data,它允许网站与嵌入式 PowerBI 报表和传入传出信息。但这似乎不符合我的实现需求。

我还看到了这个https://docs.microsoft.com/en-us/azure/cognitive-services/anomaly-detector/tutorials/batch-anomaly-detection-powerbi,它是通过 Azure 服务手动实现异常检测,而不是原生 PowerBI 功能,然而,这意味着放弃 PowerBI 异常功能的简单性,而这种功能最初是如此吸引人。

我还在这里看到了这个 StackOverflow 问题PowerBI Report Export in csv format via Rest API,它提到了使用 XMLA 端点,但是客户端应用程序似乎没有连接到可视化的功能 - 例如我尝试了 DAX Studio 和它似乎没有任何能力在可视化级别上查询数据。

0 投票
1 回答
128 浏览

.net-core - 使用基于令牌的身份验证调用 Power BI 报告服务器 Api

希望你过得很好!

我正在创建一个 Windows 服务(.net 核心)项目,该项目将从 Power BI 报告服务器获取所有报告,并按计划向用户发送电子邮件。电子邮件中将有一个访问报告的链接,或者报告已经以用户安排的任何格式附加在电子邮件中(pptx、pdf、doc、txt)。

我已使用此参考链接使用 Power Bi 报告服务器 API: PBIRS | 2.0 | 微软-Rs | 昂首阔步

我的问题是可以使用 Windows 凭据直接访问此 api。我已经使用 HttpClientHandler 类中的 CredentialCache.DefaultNetworkCredentials 属性调用了 api。但这不是我们在生产环境中所计划的。我想使用自定义身份验证访问这些 api,以便用户只需单击具有令牌/身份验证的链接即可查看或下载/查看报告。如何将我的 Power BI 服务器配置为具有自定义身份验证?

谁能帮帮我吗?早期反应表示赞赏。

谢谢你!

0 投票
1 回答
141 浏览

asp.net-core - AcquireTokenSilentAsync failed_to_acquire_token_silently

我有一个在 azure 上运行的 .NET MVC Core 3.1 Webapp。此 Web 应用程序使用针对 Azure AD 的 SSO,并在委托模式下使用 powerbi API 和图形 API。

一切正常,但现在我经常在触发 AcquireTokenSilentAsync 时遇到 failed_to_acquire_token_silently 异常。这不是 100% 的时间,而且对我来说有点随机。

让我尝试提取我认为最相关的代码部分。

Startup.cs / 配置服务:

Startup.cs / ConfigureTokenHandling:

控制器是这样的:

后来由控制器触发:

添加了 AcquireTokenAsync 以扭转 failed_to_acquire_token_silently 问题(但它完全失败了)。

你知道为什么它不时失败吗?任何其他想法如何解决它?

谢谢!!!基督教

编辑 07/04: 这里有一个例子:

用户已正确针对 AD 进行身份验证。收到一个代码,几秒钟后出现 failed_to_acquire_token_silently 异常。

0 投票
0 回答
56 浏览

powerbi - 如何在 PowerBI 中将报告下载为 Excel

如何在 PowerBI 中以 Excel 格式下载报告。目前,我已使用 PowerBi Web 部件将报告嵌入到 SharePoint 页面中,需要使用下载按钮下载报告。

我使用过 PowerBI API - POST https://api.powerbi.com/v1.0/myorg/reports/{reportId}/ExportTo

响应 - { "error": { "code": "InvalidRequest", "message": "请求导出的报告不在专用容量上" } }

0 投票
1 回答
157 浏览

powerbi - 如何以编程方式创建 Power BI 数据集计划刷新

要求:通过代码创建 Power BI 数据集计划刷新并在 DevOps 过程中使用它,这样我就不必从 Power BI 门户网站显式创建计划刷新。

我尝试/研究的内容:我找不到明确的 Power BI API 来创建计划刷新。因此,我尝试使用更新刷新计划数据集 API:https ://api.powerbi.com/v1.0/myorg/datasets/{datasetId}/refreshSchedule 参考:MicrosoftDocs

已观察:如果计划关闭 - 此 API 打开计划并更新数据集的刷新计划。但是,为了实现这一点,我必须使用 Power BI 门户网站至少创建一次计划。然后,如果我关闭计划并运行上述 API,它会打开计划并更新刷新计划时间。

是否有任何解决方法可以通过 API 设置 Power BI 数据集计划刷新?

0 投票
2 回答
792 浏览

powerbi - 使用服务主体更新数据集的 PowerBI API 错误

要求:通过服务主体使用 Powershell 脚本更新 PowerBI 数据集计划。使用了 PowerBI API。参考:微软文档

错误消息:“消息”:“应用程序无法访问 API”

我做了什么:

  1. 在 Azure AD 中提供 PowerBI 应用程序 API 权限。授予 PowerBI 工作区中服务主体的管理员访问权限。

    API 权限

  1. 将 SP 放入 AD 组中。将此 AD 组设为 Power BI 工作区和数据集的管理员(在 Power BI 管理员设置下)

  2. 使用使用服务主体生成的访问令牌。用于 API 请求的 Invoke-RestMethod。

观察:

使用我工作区的 datasetId 并运行脚本。2 场景:

  1. 在授权标头中使用服务主体访问令牌。得到 - Forbidden 403 Error. "Message":"API is not accessible for application
  2. 在授权标头中使用我的用户凭据生成的访问令牌时,脚本成功运行。
  3. 在其他工作区尝试了各种数据集

我缺少哪些权限来使用服务主体更新数据集计划?