Power BI :: 使用不记名令牌通过 REST API 调用获取数据

问题描述 投票:0回答:1

我正在尝试从 Azure REST API 中提取数据。

我想查询的端点是Recommendations - List

为了这样做,我需要:

  • 不记名代币:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs...

一旦发送,一切都很好,我得到了我想要的结果。

现在,有没有办法在 Power BI 中执行相同的操作?

目标是每日刷新。

此外,有没有办法创建一个向 Azure REST API 请求新令牌的逻辑?

powerbi powerbi-desktop bearer-token powerbi-datasource
1个回答
0
投票

我可以看到在此 Power BI 查询线程这个问题中设置的相关标头。

  Azure REST API ──────┐
                       ├─ GET /subscriptions/{subscription-id}/providers/
                       │    Microsoft.Advisor/recommendations
                       │
                       │ Headers ──┐
                       │           ├─ Authorization: Bearer {token}
                       │           └─ Accept: application/json
                       │
                       │ Query ────┐
                       │           └─ api-version=2023-01-01
                       │
                       └─ Response with Data

您可以使用 Power BI Desktop 中的 Power Query 编辑器来设置连接和查询。 (

'Home' > 'Get Data' > 'More...' > 'Online Services' > 'Blank Query'
)。单击“高级编辑器”并粘贴以下 M 代码:

let
    url = "https://management.azure.com/subscriptions/f95326b6-759b-45c5-a123-ae6a9aa82754/providers/Microsoft.Advisor/recommendations?api-version=2023-01-01",

    token = "Bearer YourTokenHere",

    // HTTP Request headers
    headers = [
        Authorization=token,
        // Include Accept header
        Accept="application/json"
    ],

    // Get the data
    source = Json.Document(Web.Contents(url, [Headers=headers]))
in
    source

要自动刷新承载令牌,您通常需要使用服务主体,或其他允许无人值守身份验证的身份验证方法。 Power BI 没有这方面的内置功能,因此您可以尝试:

  • 如果令牌过期时间较长,请使用 Power BI 的计划刷新功能
  • 或者编写一个自定义连接器,其中包含获取新令牌的逻辑。
  • 或使用 Azure Automation 运行脚本来检索新令牌并更新 Power BI 中的数据集。

对于 Power BI 服务中的每日刷新,您可以将数据集设置为每日刷新。但是,对于令牌刷新逻辑,您可能需要一个外部服务来安全地管理和刷新令牌(可能是Azure Key Vault),然后通过 API 更新 Power BI 数据源凭据(数据集 - 更新数据源) )。

© www.soinside.com 2019 - 2024. All rights reserved.