шаги по интеграции отчета PowerBI в приложение Java - PullRequest
0 голосов
/ 03 мая 2018

обязательные скрипты Java jquery.js powerbi.js

  1. Создать токен AAD

Я предполагаю, что у вас уже есть собственное приложение, и все необходимые Power Power Access уже предоставлены. Если нет, то обратитесь к шагам А-С ниже.

Я использовал шаги, упомянутые в этой ссылке. Я немного изменил его, чтобы повторно использовать токен до истечения срока его действия. Только после истечения срока мы создадим новый токен http://community.powerbi.com/t5/Developer/Rest-api-usage-with-Java/m-p/58514#M1841 Это приложение выдаст токен AAD для REST-вызова

  1. Создание DIV для отчета на странице JSP приложения, которому требуется встраивание отчета

    div id = "reportContainer" class = "reportContainer"

  2. Получить токен 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, в которой находится отчет.

...