excel - 具有刷新功能的 Power BI 数据源

标签 excel bearer-token powerbi powerquery

我正在尝试在 Power BI 中设置一个可以根据需要刷新或计划刷新的数据集。

我正在上传一个带有电源查询的 Excel 工作簿。

电源查询正在连接到复制服务以通过服务获取数据。查询如下所示:

Source = Web.Contents(
    "https://na2.replicon.com/services/ClientService1.svc/GetActiveClients",
    [
        Headers=
        [
            #"Authorization"="Bearer *ValidToken*",
            #"Accept"="application/json",
            #"Content-Type"="application/json"
        ],  
        Content=Text.ToBinary("{}")
    ]
)

该请求是一个 POST 操作,因此 Content 字段用于 Web.Contents选项参数。通过承载 token 进行身份验证。

数据源设置为匿名凭据,隐私级别设置为无。

这工作正常,我能够检索结果,甚至刷新工作簿中的表格。

一旦我将它上传到 PowerBI 并尝试刷新新创建的数据集,它会说:

You cannot refresh yet because you need to provide valid credentials for your data sources in the dataset.



所以我去管理数据源。单击编辑凭据。选择“匿名”身份验证方法并单击登录,它显示“登录失败”。

为什么呢?当我上传 Excel 工作簿时,标题似乎丢失了。我怎样才能做到这一点?是否有其他方法可以设置可以刷新的数据集 - 源是 Web 服务?

最佳答案

这就是我最终做的事情。

我的场景首先:

  • 我的请求是 POST
  • 身份验证是通过需要通过请求 header 传递的不记名 token 进行的。这是我试图调用的复制服务的要求,我无法更改
  • 在 PowerBI 中创建的数据集需要是可刷新的。

  • 因为我不能让它直接从 PowerBI 内部工作,所以我引入了一个中间层。这将解释来自 PowerBI 的 GET 请求。处理来自查询字符串的 token 。接受服务和操作也作为查询字符串参数。然后它会创建对真实服务的 POST 请求(在我的例子中是复制服务)。服务名称和操作名称也是从请求 URL 中提取的。 token 作为请求 header 的一部分被推送

    所以来自 PowerBI 的请求看起来就像 PowerBI 需要的那样,即
    Web.Contents("https://intermediatelayer.com?access_token="*validtoken*"&ServiceName="ClientService"&Operation="GetActiveClients"")
    

    不是一个理想的解决方案,但有效。

    关于excel - 具有刷新功能的 Power BI 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31591126/

    相关文章:

    c# - excel 文件的自动更新程序

    c# - VSTO PowerPoint/Excel 交互

    c# - 使用 Bearer Token 访问 IdentityServer4 上 protected API

    visual-studio - 为 azure 函数实现不记名 token 身份验证

    powerbi - 如何通过 DAX 指标捕获切片器值(value)

    powerbi - 在 PowerBI 中使用 DAX 将 BLANKS 替换为 0

    c# - 从 Excel 文件中提取数据并存储在 SQL Server 数据库中

    vba - Excel 编程时将选择设置为 Nothing

    rest - Yii2 REST api 承载认证

    powerbi - DAX 中仅使用度量而不使用计算列的运行/累积总计