问题描述
我正在尝试使用 powerbi SDk 读取 powerbi 报告。我得到了正确的访问令牌(在邮递员中测试)。为 TokenCredentials 传递相同的访问令牌。但在 _powerBIClient 中没有得到任何值。它没有价值。我正在使用以下代码。
var functionCred = new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(_configuration[BotConfigurationEnum.FunctionClientId.GetDescription()],_configuration[BotConfigurationEnum.FunctionClientSecret.GetDescription()]);
var userAssertion = (!string.IsNullOrWhiteSpace(token)) ? new Microsoft.IdentityModel.Clients.ActiveDirectory.UserAssertion(token,"urn:ietf:params:oauth:grant-type:jwt-bearer") : null;
var context = new AuthenticationContext("https://login.microsoftonline.com/{tenentid}");
var res = await context.AcquiretokenAsync("https://analysis.windows.net/powerbi/api",functionCred,userAssertion);
var tokenCredentials = new TokenCredentials(res.Accesstoken,"Bearer");
var _powerBIClient = new PowerBIClient(new Uri("https://api.powerbi.com/"),tokenCredentials);
var pbiReport = _powerBIClient.Reports.GetReport(reportId);
解决方法
我的代码有一些小的更正。我已经删除了新 Uri 中的“/”并且它起作用了。我知道这很傻..
var _powerBIClient = new PowerBIClient(new Uri("https://api.powerbi.com"),tokenCredentials);