На портале Azure я зарегистрировал приложение типа «Native».В Java я смог получить токен доступа с помощью этого вызова API
POST https://login.windows.net/common/oauth2/token
Параметры запроса
- client_id: appId на лазурном портале
- grant_type: "пароль", это жестко записано
- ресурс: "https://analysis.windows.net/powerbi/api"
- имя пользователя: электронная почта
- пароль: пароль электронной почты
Это дает мне accessToken и refreshToken. Я могу использовать этот accessToken для вызова любого из API Power BI. Как получить все отчеты, клонировать отчеты, создавать наборы данных и т. Д.
Теперь я хочу встроитьотправлять отчеты на мою веб-страницу, и я использую этот API-интерфейс с помощью jquery
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 вызвано тем, что процесс аутентификации неверен. Что я здесь не так делаю?