0

我正在尝试使用 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”,那么我可能只需要升级我的帐户。如果问题是我缺少其他东西,我还不想升级我的帐户。

4

1 回答 1

0

通常 401 错误意味着您的令牌的受众与您的 api 不匹配。使用token调用api时,会收到401未授权错误。访问令牌是根据受众颁发的,因此您必须确保scope在请求令牌时将 设置为您的 api。当然你也可以解析token,检查Claim,aud确定是你要调用的api。

如果需要调用 Power BI Service api,则应放入https://analysis.windows.net/powerbi/api/.default范围。

在此处输入图像描述

解析token:</p>

在此处输入图像描述

于 2021-01-28T09:25:28.897 回答