0
votes

I have an issue with getting embed token. I've done all 5 steps which is described in this link (5 steps to push data into a dataset) and everything works perfectly: datasets are created, tables are created and filled in with data without any problems.

I have a task to embed a datasets (not reports) to web page. I found this page (Power BI Embeded Sample) which shows how embed report/dataset/dashboard/tile will look like. And on this page there is an embed token. I googled a little and found this page (Generate Embed Token Example) which describes the looks oh HTTP POST requests. I did the part for datasets. Here is my code example:

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());
        }
    }

and I got next error:

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

here is line 388:

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

I don't know why it's happening. I took this code from here (Generate Embed Token Example), but I did some changes for my purposes (because I need dataset and not report).

I'll appreciate any help.

1

1 Answers

0
votes

I have come across a similar error when attempting to embed using Power BI. I recommend using a tool like Fiddler to intercept the communication between your application and Power BI and finding out the error code that is actually being returned.

The following article from Telerik shows how to intercept traffic using Fiddler: Capturing Traffic from .NET Services with Fiddler