Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }