如何在同一个 Power BI 嵌入应用程序中为不同的工作区生成令牌
How to generate a token for different workspaces in same Power BI embedding app
我在工作区 1 中有一个 Power BI 报表,在工作区 2 中有两个 Power BI 数据集。
是否可以生成令牌,我可以在其中嵌入工作区 1 中的 Power BI 报告并动态绑定工作区 2 中的数据集?
您可以使用以下 API
为您的数据集和报告生成令牌
POST https://api.powerbi.com/v1.0/myorg/GenerateToken
请求正文应包含以下内容:
{
datasets: [{ id: "IdOfRequiredDataset" }],
reports: [{ id: "IdofRequiredReport" }],
targetWorkspaces: [
{ id: "WorkspaceIdofReport" },
{ id: "WorkspaceIdOfDataset" },
],
}
现在,只要数据集具有相同的数据架构,您就可以将数据集动态绑定到您的报表。
要使用动态绑定绑定不同的数据集,请将 datasetBinding 属性 添加到嵌入配置对象。
请参考以下代码片段:
const reportConfig = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: "tokenGeneratedByAPI", // Access token returned by generate token API
embedUrl: embedParams.EmbedReport[0].EmbedUrl,
// Adding datasetBinding property
datasetBinding: {
datasetId: "datasetId", // ID of dataset that you want the report to use
},
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);
Report before using datasetBinding(使用报表的原始数据集):
使用datasetBinding后的报告(将报告绑定到其他数据集):
也可以参考https://docs.microsoft.com/en-us/javascript/api/overview/powerbi/bind-report-datasets
我在工作区 1 中有一个 Power BI 报表,在工作区 2 中有两个 Power BI 数据集。
是否可以生成令牌,我可以在其中嵌入工作区 1 中的 Power BI 报告并动态绑定工作区 2 中的数据集?
您可以使用以下 API
为您的数据集和报告生成令牌POST https://api.powerbi.com/v1.0/myorg/GenerateToken
请求正文应包含以下内容:
{
datasets: [{ id: "IdOfRequiredDataset" }],
reports: [{ id: "IdofRequiredReport" }],
targetWorkspaces: [
{ id: "WorkspaceIdofReport" },
{ id: "WorkspaceIdOfDataset" },
],
}
现在,只要数据集具有相同的数据架构,您就可以将数据集动态绑定到您的报表。 要使用动态绑定绑定不同的数据集,请将 datasetBinding 属性 添加到嵌入配置对象。
请参考以下代码片段:
const reportConfig = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: "tokenGeneratedByAPI", // Access token returned by generate token API
embedUrl: embedParams.EmbedReport[0].EmbedUrl,
// Adding datasetBinding property
datasetBinding: {
datasetId: "datasetId", // ID of dataset that you want the report to use
},
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);
Report before using datasetBinding(使用报表的原始数据集):
使用datasetBinding后的报告(将报告绑定到其他数据集):
也可以参考https://docs.microsoft.com/en-us/javascript/api/overview/powerbi/bind-report-datasets