public async Task <IHttpActionResult> Get(string id) { // Create a user password cradentials. var credential = new UserPasswordCredential(Username, Password); // Authenticate using created credentials var authenticationContext = new AuthenticationContext(AuthorityUrl); var authenticationResult = await authenticationContext.AcquireTokenAsync(ResourceUrl, ClientId, credential); var tokenCredentials = new TokenCredentials(authenticationResult.AccessToken, "Bearer"); using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials)) { // Get a list of reports. var reports = await client.Reports.GetReportsInGroupAsync(GroupId); var report = reports.Value.FirstOrDefault(r => r.Id == id); // Generate Embed Token for reports without effective identities. GenerateTokenRequest generateTokenRequestParameters; generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view"); var tokenResponse = await client.Reports.GenerateTokenInGroupAsync(GroupId, report.Id, generateTokenRequestParameters); var reportWithToken = new ReportWithToken(report, tokenResponse.Token); return(Ok(reportWithToken)); } }
public async Task <IHttpActionResult> Get(string id) { var credentials = new TokenCredentials(workspaceCollectionAccessKey, "AppKey"); using (var client = new PowerBIClient(new Uri(apiUrl), credentials)) { var reportsResponse = await client.Reports.GetReportsAsync(this.workspaceCollectionName, this.workspaceId.ToString()); var report = reportsResponse.Value.FirstOrDefault(r => r.Id == id); if (report == null) { return(BadRequest($"No reports were found matching the id: {id}")); } var embedToken = PowerBIToken.CreateReportEmbedToken(workspaceCollectionName, workspaceId.ToString(), report.Id); var accessToken = embedToken.Generate(workspaceCollectionAccessKey); var reportWithToken = new ReportWithToken(report, accessToken); return(Ok(reportWithToken)); } }