обязательные скрипты Java
jquery.js
powerbi.js
- Создать токен AAD
Я предполагаю, что у вас уже есть собственное приложение, и все необходимые Power Power Access уже предоставлены. Если нет, то обратитесь к шагам А-С ниже.
Я использовал шаги, упомянутые в этой ссылке. Я немного изменил его, чтобы повторно использовать токен до истечения срока его действия. Только после истечения срока мы создадим новый токен
http://community.powerbi.com/t5/Developer/Rest-api-usage-with-Java/m-p/58514#M1841
Это приложение выдаст токен AAD для REST-вызова
Создание DIV для отчета на странице JSP приложения, которому требуется встраивание отчета
div id = "reportContainer" class = "reportContainer"
Получить токен AAD
Выполните вызов REST для приложения, разработанного на шаге 1, получите токен AAD
мой объект aadToken имеет 2 параметра accessToken и expiresAtStr
var aadToken={accessToken:' ',expiresAtStr: ''};
function getAadAccessToken() {
var deferred = $q.defer();
$http.get('/MyPowerBIApp/REST/getAadToken/')
.then(
function (response) {
deferred.resolve(response.data);
},
function(errResponse){
console.error('Error while getting Aad Access Token');
deferred.reject(errResponse);
}
);
return deferred.promise;
}
После получения aadToken от вызова REST создайте конфигурацию для встраивания
txtAccessToken - это токен сверху. (AadToken.accessToken)
txtEmbedUrl - это отчет, который нужно встроить.
Это будет похоже на https://app.powerbi.com/reportEmbed?reportId.......
var config= {
type: 'report',
tokenType: 0,//1:Embed,0:Aad
accessToken: txtAccessToken,
embedUrl: txtEmbedUrl,
permissions: 7,
viewMode: 0,
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: false,
useCustomSaveAsDialog: false
}
};
var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), config);
Это будет включать отчет в DIV
При попытке встроить возникла большая ошибка при создании токена AAD.
Убедитесь, что вы создали приложение Azure и предоставили все необходимые разрешения для использования API-интерфейсов Power BI
A. Создайте родное приложение, как упомянуто здесь:
https://docs.microsoft.com/en-us/power-bi/developer/walkthrough-push-data-register-app-with-azure-ad
B. Перейдите в Azure Active Directory-> Регистрация приложений.
Нажмите на ваше приложение:
Значение идентификатора приложения, которое вы видите здесь, является значением clientId, которое вы будете использовать для генерации токена AAD, упомянутого на шаге 1
Пожалуйста, обратитесь ниже код:
AuthenticationResult authResult = authenticationContext.acquireToken(
resourceId,
clientId,
username,
password,
null
).get();
C. Перейдите в Azure Active Directory-> Регистрация приложений -> Настройки -> Необходимые разрешения
Убедитесь, что служба Power BI (Power BI) находится под API и все необходимые разрешения предоставлены. Ниже приведены некоторые разрешения.
Просмотр групп пользователей
Просмотреть все отчеты
Просмотреть все панели мониторинга (предварительный просмотр)
Если все эти шаги выполнены, вы сможете вставить отчет с полученным токеном.
Пожалуйста, проверьте и дайте мне знать, если я пропустил какие-либо шаги или будут какие-либо проблемы с этим подходом.
Также убедитесь, что имя пользователя, которое будет использоваться для создания токена AAD, имеет доступ (MemberOf) к рабочей области PowerBI, в которой находится отчет.