public static EmbeddedReportConfig GenerateReport(string token, Guid groupId, Guid reportId, string reportPageNameForMobile) { EmbeddedReportConfig config = null; var tokenCredentials = new TokenCredentials(token, "Bearer"); // Create a Power BI Client object. It will be used to call Power BI APIs. using (var client = new PowerBIClient(new Uri("https://api.powerbi.com"), tokenCredentials)) { Microsoft.PowerBI.Api.V2.Models.Report report = client.Reports.GetReportInGroup(groupId, reportId); if (report != null) { var requestParameters = new GenerateTokenRequest(); requestParameters.AccessLevel = "View"; // Generate EmbedToken This function sends the POST message //with all parameters and returns the token EmbedToken embedtoken = client.Reports.GenerateTokenInGroupAsync( groupId, reportId, requestParameters).GetAwaiter().GetResult(); config = new EmbeddedReportConfig(); config.EmbedURL = report.EmbedUrl; config.GroupID = groupId.ToString(); config.ReportID = reportId.ToString(); config.Token = embedtoken?.Token; config.TokenID = embedtoken?.TokenId.ToString(); config.Expiration = embedtoken?.Expiration; config.PageName = reportPageNameForMobile; } } return(config); }
public async Task <string> GetReportUrlAsync(string groupId, string reportId) { var client = GetClient(); ODataResponseListReport reports = await client.Reports.GetReportsInGroupAsync(groupId).ConfigureAwait(false); Microsoft.PowerBI.Api.V2.Models.Report report = reports.Value.FirstOrDefault(r => r.Id == reportId); return(report.EmbedUrl); }