Power BI API 身份验证
Power BI API Authentication
如何从我的应用程序调用 Power BI API 并理解 Microsoft APIs?
我已通过 Azure AD 库为 JavaScript 成功授权用户。但是,我无法从控制台中的 API 获得成功响应。我收到未经授权的错误,请求的资源上没有访问控制允许来源 header。
我习惯使用 Javascript 和 Angular 进行 API 调用,但不习惯使用 Microsoft APIs 以及它们必须如何授权。我曾尝试阅读文章,但它们让我难以理解。
报错如下
Failed to load resource: the server responded with a status of 404 (Not Found)
XMLHttpRequest: cannot load https://api.powerbi.com/v1.0/myorg/dashboards. Response to preflight request doesn't pass access control check: No Access-Control-Allow-Origin header is present on the requested resource. Origin http://renniesb.github.io is therefore not allowed access. The response had HTTP status code 404.
nope
包含我的项目代码的存储库
https://github.com/Renniesb/sample_dashboard/tree/gh-pages
放置在显示我的力量的存储库中B.IAPI调用https://github.com/Renniesb/sample_dashboard/blob/gh-pages/app/services/powerbi.service.js
预期行为
在控制台中列出仪表板。
测试站点
https://Renniesb.github.io/sample_dashboard。为了测试,我使用我的凭据进行授权。我将如何让这个论坛的用户测试行为。我如何启用他们的凭据?
我已经尝试过的事情列表
使用以下网站创建了反向代理:http://shawnsimondeveloper.com/nodeproxyangular/
使用 JSONP hack 试图解决 CORS 问题。
在 webconfig 文件中输入调用源。
在本地和 GitHub
上的网页上测试了站点
您不需要同时使用 CORS 和 HTTP 代理。由于您使用的是 ADAL JS 库,它会自动将您的 Power BI 令牌附加到您的传出 HTTP 请求。
您还需要设置以下内容:
- 启用隐式授权流程,如Step 3
中所述
此外,仪表板端点仍然仅在 "beta" 版本中可用。这导致了 404。
- 将您的网址更新为 https://api.powerbi.com/beta/myorg/dashboards
要继续使用标准 AJAX CORS 调用:
- 更新您的 Angular powerbiService 服务以直接向 https://api.powerbi.com 域而不是相对 URL 发出 HTTP 请求。
如何从我的应用程序调用 Power BI API 并理解 Microsoft APIs?
我已通过 Azure AD 库为 JavaScript 成功授权用户。但是,我无法从控制台中的 API 获得成功响应。我收到未经授权的错误,请求的资源上没有访问控制允许来源 header。
我习惯使用 Javascript 和 Angular 进行 API 调用,但不习惯使用 Microsoft APIs 以及它们必须如何授权。我曾尝试阅读文章,但它们让我难以理解。
报错如下
Failed to load resource: the server responded with a status of 404 (Not Found)
XMLHttpRequest: cannot load https://api.powerbi.com/v1.0/myorg/dashboards. Response to preflight request doesn't pass access control check: No Access-Control-Allow-Origin header is present on the requested resource. Origin http://renniesb.github.io is therefore not allowed access. The response had HTTP status code 404. nope
包含我的项目代码的存储库
https://github.com/Renniesb/sample_dashboard/tree/gh-pages
放置在显示我的力量的存储库中B.IAPI调用https://github.com/Renniesb/sample_dashboard/blob/gh-pages/app/services/powerbi.service.js
预期行为 在控制台中列出仪表板。
测试站点
https://Renniesb.github.io/sample_dashboard。为了测试,我使用我的凭据进行授权。我将如何让这个论坛的用户测试行为。我如何启用他们的凭据?
我已经尝试过的事情列表
使用以下网站创建了反向代理:http://shawnsimondeveloper.com/nodeproxyangular/ 使用 JSONP hack 试图解决 CORS 问题。
在 webconfig 文件中输入调用源。
在本地和 GitHub
上的网页上测试了站点
您不需要同时使用 CORS 和 HTTP 代理。由于您使用的是 ADAL JS 库,它会自动将您的 Power BI 令牌附加到您的传出 HTTP 请求。
您还需要设置以下内容:
- 启用隐式授权流程,如Step 3 中所述
此外,仪表板端点仍然仅在 "beta" 版本中可用。这导致了 404。
- 将您的网址更新为 https://api.powerbi.com/beta/myorg/dashboards
要继续使用标准 AJAX CORS 调用:
- 更新您的 Angular powerbiService 服务以直接向 https://api.powerbi.com 域而不是相对 URL 发出 HTTP 请求。