Сгенерировать встроенный токен для создания проблемы

У меня проблема с получением встроенного токена. Я выполнил все 5 шагов, описанных в этой ссылке (5 шагов, чтобы поместить данные в набор данных), и все работает отлично: наборы данных создаются, таблицы создаются и заполняются данными без каких-либо проблем.

У меня есть задача встроить наборы данных (не отчеты) на веб-страницу. Я нашел эту страницу (образец встроенного Power BI) который показывает, как будет выглядеть встроенный отчет / набор данных / информационная панель / плитка. И на этой странице есть встроенный токен. Я немного погуглил и нашел эту страницу (Пример создания встроенного токена), которая описывает внешний вид ох HTTP POST-запросы. Я сделал часть для наборов данных. Вот мой пример кода:

private static void generateEmbedToken()
    {
        // TokenCredentials Initializes a new instance of the
        // Microsoft.Rest.TokenCredentials class with
        // the given 'Bearer' token.
        var credentials = new TokenCredentials(token);
        // Initialize PowerBIClient with credentials
        var powerBIclient = new Microsoft.PowerBI.Api.V2.PowerBIClient(credentials)
        {
            // BaseUri is the api endpoint, default is https://api.powerbi.com
            BaseUri = new Uri("https://api.powerbi.com")
        };
        try
        {
            // Create body where accessLevel = View, datasetId = "" by default
            var requestParameters = new GenerateTokenRequest(TokenAccessLevel.Create, datasetId, true);
            // Generate EmbedToken This function sends the POST message
            //with all parameters and returns the token
            EmbedToken token = powerBIclient.Reports.GenerateTokenForCreate(requestParameters);
            embedToken = token.Token;
        }
        catch (Exception exc)
        {
            Console.WriteLine(exc.ToString());
        }
    }

и я получил следующую ошибку:

Microsoft.Rest.HttpOperationException: Operation returned an invalid status code 'NotFound'
   at Microsoft.PowerBI.Api.V2.Reports.<GenerateTokenForCreateWithHttpMessagesAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.Api.V2.ReportsExtensions.<GenerateTokenForCreateAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PowerBI.Api.V2.ReportsExtensions.GenerateTokenForCreate(IReports operations, GenerateTokenRequest requestParameters)
   at PushDataApp.Program.generateEmbedToken() in C:\Users\PC\Documents\Visual Studio 2017\Projects\PushDataApp\PushDataApp\Program.cs:line 388

вот строка 388:

EmbedToken token = powerBIclient.Reports.GenerateTokenForCreate(requestParameters);

Я не знаю, почему это происходит. Я взял этот код отсюда (Пример создания встроенного токена), но внес некоторые изменения для моих целей (потому что мне нужен набор данных, а не отчет).

Буду признателен за любую помощь.


person Zirochka    schedule 27.07.2017    source источник


Ответы (1)


Я столкнулся с аналогичной ошибкой при попытке встраивания с помощью Power BI. Я рекомендую использовать такой инструмент, как Fiddler, чтобы перехватить обмен данными между вашим приложением и Power BI и узнать код ошибки, который действительно возвращается.

В следующей статье Telerik показано, как перехватить трафик с помощью Fiddler: Захват трафика из служб .NET с помощью Fiddler

person dev.bv    schedule 21.09.2017