gpt4 book ai didi

java - 无法嵌入 Power BI 报告

转载 作者:行者123 更新时间:2023-12-02 10:08:32 24 4
gpt4 key购买 nike

在 Azure 门户中,我注册了一个“ native ”类型的应用程序。在 Java 中,我能够使用此 API 调用获取访问 token

发布https://login.windows.net/common/oauth2/token

请求参数

  1. client_id:Azure 门户上的 appId
  2. grant_type:“密码”,这是硬编码的
  3. 资源:“https://analysis.windows.net/powerbi/api
  4. 用户名:电子邮件
  5. 密码:邮箱密码

这给了我一个accessToken和一个refreshToken。我可以使用此 accessToken 来调用任何 Power BI API。例如获取所有报告、克隆报告、创建数据集等。

现在我想将报告嵌入到我的网页中,并且我使用 jquery 使用此 API

function embedPBIReport(txtAccessToken, embedUrl, embedReportId, mode) {

// Read embed URL from textbox
var txtEmbedUrl = embedUrl;

// Read report Id from textbox
var txtEmbedReportId = embedReportId;

// Get models. models contains enums that can be used.
var models = window['powerbi-client'].models;

// We give All permissions to demonstrate switching between View and Edit mode and saving report.
var permissions = mode == 1 ? models.Permissions.Read : models.Permissions.ReadWrite ;
var viewMode = mode == 1 ? models.ViewMode.View : models.ViewMode.Edit;
// Embed configuration used to describe the what and how to embed.
// This object is used when calling powerbi.embed.
// This also includes settings and options such as filters.
// You can find more information at https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details.
var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: txtAccessToken,
embedUrl: txtEmbedUrl,
id: txtEmbedReportId,
permissions: permissions,
viewMode: viewMode,
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: true
}
};

// Get a reference to the embedded report HTML element
var embedContainer = $('#reportContainer');
// Embed the report and display it within the div container. --> -->
var report = embedContainer.powerbi(config);
}

当我在网页上启动嵌入时,它会创建一个 Iframe 并将 Power BI 图标显示为加载程序,然后引发此错误

{"message":"LoadReportFailed","detailedMessage":"Get report failed","errorCode":"403","level":6,"technicalDetails":{"requestId":"f62b4819-7cd0-1c6d-1af0-a89050881a8a"}}

我用谷歌搜索了这个问题,人们说 403 是由于身份验证过程不正确引起的。我在这里做错了什么?

最佳答案

您似乎正在尝试嵌入指定错误 token 类型的报告。在您的代码中, token 类型设置为 Embed:

tokenType: models.TokenType.Embed

虽然您从未提到过这样的生成(例如使用GenerateTokenInGroup)。因此,您可能正在使用初始身份验证期间获取的 token 。如果你想使用它,你应该改变 token type成为 Aad:

tokenType: models.TokenType.Aad

区别在于,Azure AD token 允许访问用户的数据、报告、仪表板和磁贴,而嵌入 token 特定于嵌入项目。此外,嵌入 token 的生命周期(约 5 分钟)比 AAD token (约 1 小时)短。

关于java - 无法嵌入 Power BI 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com