У меня проблема с получением встроенного токена. Я выполнил все 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);
Я не знаю, почему это происходит. Я взял этот код отсюда (Пример создания встроенного токена), но внес некоторые изменения для моих целей (потому что мне нужен набор данных, а не отчет).
Буду признателен за любую помощь.