PowerBI Embedded“Provision Token”生成错误

时间:2016-08-15 15:23:36

标签: c# powerbi powerbi-embedded

我正在尝试关注this PowerBI embedded example并收到错误:

'PowerBIToken' does not contain a definition for 'CreateProvisionToken'

This MSDN article描述了CreateProvisionToken()方法。

  • 我使用NuGet包管理器安装了最新的Microsoft.PowerBI.CoreMicrosoft.PowerBI.Api

  • 在我的项目中包含Microsoft.PowerBI.SecurityMicrosoft.PowerBI.Api.V1

我也尝试将CreateProvisionToken()部分更改为以下内容:

var credentials = new TokenCredentials(accessKey, "AppKey");

var client = new PowerBIClient(credentials);

var devToken = PowerBIToken. CreateDevToken(reportID, workspaceID);
using (client)
{
    var embedToken = PowerBIToken.CreateReportEmbedToken(
        collectionName, 
        workspaceID, 
        reportID);
    var embedTokenString = embedToken.Generate(accessKey);
}

这会生成一个“看起来正确”的令牌,但在文章末尾的示例html中使用此令牌会在呈现报告时导致错误This content is not available

我错过了什么?

1 个答案:

答案 0 :(得分:2)

Power BI嵌入式的最新版本通过仅支持一个嵌入式令牌简化了身份验证机制,而不再使用Power BI博客中的其他令牌:

https://powerbi.microsoft.com/en-us/blog/what-s-new-and-what-s-next-for-power-bi-embedded-july-2016/

  

我们简化了开发人员验证他们对Power BI的调用的方式。从今天开始,app令牌将仅用于验证嵌入请求和将来可能添加的其他客户端请求。所有对REST API的调用都将直接使用我们的API密钥进行身份验证。这样就无需在每次调用REST API时生成应用程序令牌。

您需要跟进Microsoft的示例:

https://github.com/Azure-Samples/power-bi-embedded-integrate-report-into-web-app/blob/master/EmbedSample/Controllers/DashboardController.cs