在我的应用程序中,我正在显示Power BI报告.它已经可以工作,因此通过其ID(guid)显示任何报告都没有问题.
但是有一些报告需要进行参数化,例如,当前年份或观看报告的人.这是我的问题:如何做到这一点?
更具体地说,我将报表嵌入HTML <iframe>元素中.我将iframe URL设置为从报告定义embedUrl(从REST API接收)接收的URL .我通过调用的JavaScript代码来控制它postMessage().
报告定义:
{
"id":"12345678-6418-4b47-ac7c-f8ac7791a0aa",
"name":"Retail Analysis Sample",
"webUrl":"https://app.powerbi.com/reports/12345678-6418-4b47-ac7c-f8ac7791a0aa",
"embedUrl":"https://app.powerbi.com/reportEmbed?reportId=12345678-6418-4b47-ac7c-f8ac7791a0aa"
}
Run Code Online (Sandbox Code Playgroud)
用于加载报告的JavaScript代码:
function onFrameLoaded() {
var m = {
action: "loadReport",
reportId: reportId,
accessToken: accessToken
};
iframe.contentWindow.postMessage(JSON.stringify(m), "*");
}
Run Code Online (Sandbox Code Playgroud)
现在,我通过自定义应用程序中的参数来过滤报告.有没有办法在报告中发送或传递值来过滤数据集?
有没有使用双向电力休息API在节点JS的方式,我看了视频,然布鲁尔和种Arina Hantsis在这里展示的演示,设置和入门电源BI嵌入我想达到相同,但使用节点JS,在我们的发展环境我们不使用c#.我找到了Node SDK,但它说我们不再支持节点SDK,Node SDK
我是否必须将开发结构从Node js更改为c#才能使用power bi Rest API !!
我最近从旧的Power BI嵌入式方法更新到新的方法.一切正常,报告加载但在控制台我得到:
POST https://wabi-west-europe-redirect.analysis.windows.net/explore/explorations/2210976/cache 401 (Unauthorized)
Run Code Online (Sandbox Code Playgroud)
错误.我不知道这意味着什么以及我的配置是否有问题.有效载荷如下:
{"visualQueryResults":[{"visualContainerId":87590386,"...
Run Code Online (Sandbox Code Playgroud) 我正在构建一个自定义连接器,通过OAuth2连接到我们的API.这样我们就可以使用api作为powerbi的数据源.
// Resource definition
Resource = [
Description = "MyAPI",
Type = "Custom",
MakeResourcePath = (env) => env,
ParseResourcePath = (env) => {env},
Authentication = [OAuth=[StartLogin = StartLogin, FinishLogin = FinishLogin, Refresh = Refresh]],
......
Icons = [
Icon16 = { Extension.Contents("MyAPI10.png"), Extension.Contents("MyAPI20.png") }
],
Label = "MyAPI"
]
in
Extension.Module("MyAPI", { Resource })
Run Code Online (Sandbox Code Playgroud)
我使用MakeResourcePath和ParseResourcePath传递Environment参数(在power bi site/desktop中将其作为用户的输入).传递给StartLoginOAuth授权调用.
StartLogin = (env, state, display) =>
let
resourceUrl = getOAuthUrlFromEnvName(env) & "/oauth/authorize",
AuthorizeUrl = resourceUrl & "?" & Uri.BuildQueryString([ …Run Code Online (Sandbox Code Playgroud) 我是 PowerBI 的新手。我正在尝试实现“应用程序拥有数据”,即在我的 Web 应用程序中嵌入报告。我正在关注这篇文章https://docs.microsoft.com/en-us/power-bi/developer/embed-sample-for-customers
我已经下载了示例应用程序,我正在按照步骤操作。但是目前我被困在 WorkspaceId 上。在哪里可以找到workspaceId?我查看了 PowerBI 中的所有屏幕和关联的 Azure 帐户,但找不到它
我有一个IFrame,它显示了具有世界地图的PowerBI嵌入式报告.我是否可以通过嵌入式URl将参数传递给PowerBI Embedded,以根据特定国家/地区过滤我的报告.
谢谢
我是一名开发桌面应用程序的 ISV,并且想考虑在我的应用程序中使用嵌入的 power bi,但似乎无法找到是否可以在桌面应用程序内部使用的信息。\n在 SO / Googe 上搜索没有给我这个问题的答案。
\n\nPower Bi 嵌入式主页也没有强调它仅限于网络。
\n\nPS 如果它仅用于“网络应用程序” - 也许在表单中使用 WebBrowser 控件可能是一种解决方法?
\n\n有人有在桌面应用程序中使用 power bi 的经验吗?或者一些信息是否可能?
\n\n编辑
\n\n\n\n\xe2\x80\xa2步骤 1:向 Azure AD 注册 Web 应用程序。
\n\n\xe2\x80\xa2步骤 2:获取 Power BI 报告
\n\n\xe2\x80\xa2步骤 3:将 Power BI 报告加载到 IFrame 中
\n\n来自 Power bi 开发者论坛的信息\nPower BI 团队成员表示It is possible. Anything that can host and iframe can embed a Power BI report.
更新的问题
\n\n …有谁知道在电力BI的方式设置查询参数描述这里从嵌入请求而不是内部的桌面?我们正在尝试设置一个系统,我们使用power bi来为我们的应用程序中的可视化提供动力,以便客户查看他们的数据.我们需要使用某种参数系统来确保查询返回可视化的正确客户数据.
参考: Power BI样品解决方案
我已将示例解决方案中的必要代码移至我的解决方案,并在进行身份验证时给出以下错误:
AADSTS90002:未找到租户授权.如果租户没有有效订阅,则可能会发生这种情况.请咨询订阅管理员.
我用这两行进行身份验证:
var authenticationContext = new AuthenticationContext(AuthorityUrl);
var authenticationResult = await authenticationContext.AcquireTokenAsync(ResourceUrl, ApplicationId, credential);
Run Code Online (Sandbox Code Playgroud)
错误发生在最后一行.以下是我的web.config中的值:
<add key="authorityUrl" value="https://login.windows.net/common/oauth2/authorize/" />
<add key="resourceUrl" value="https://analysis.windows.net/powerbi/api" />
Run Code Online (Sandbox Code Playgroud)
同样,这在示例应用程序中100%工作,但在我移动到我的应用程序时却不能.有什么想法吗?
在此先感谢您的帮助.
我已在我的租户中激活 Power BI Pro 许可证。我有具有相同帐户的 Azure AD。我添加了以下权限。 在屏幕截图中,我添加了这些需要管理员访问权限的 Power BI 服务权限
我的帐户拥有 Azure 和 Power BI 的完整管理员权限。 Power BI 的管理门户
现在,当我尝试向 Power BI API 授予权限时,出现以下错误。“无法授予管理员同意。您的组织没有以下 API 的订阅(或服务主体):Power BI 服务”
Power BI - Azure 中的授予权限错误 请建议我,我需要做什么更改?如何检查我的租户是否有有效的 Power BI 订阅?