本文是将数据推送到数据集的分步演练的一部分。

在将数据推送到数据集的步骤 1使用 Azure AD 注册应用)中,你已在 Azure AD 中注册了客户端应用程序。 在此步骤中,你将获得身份验证访问令牌。 Power BI 应用将与 Azure AD 集成,以便为你的应用提供安全的登录和授权 你可以使用令牌向 Azure AD 进行身份验证,并获得对 Power BI 资源的访问权限。

下面介绍如何获取身份验证访问令牌。

获取身份验证访问令牌

注意:在开始之前,先确保已按将数据推送到数据集演练中之前的步骤进行了操作。

  1. 在 Visual Studio 2015 中,创建控制台应用程序项目。
  2. 安装 Azure AD Authentication Library for .NET NuGet 程序包。 若要获取 .NET 应用的身份验证安全令牌,可以使用此程序包。 下面介绍了安装此程序包的方法:

    a. 在 Visual Studio 2015 中,选择工具 > NuGet 包管理器 > 程序包管理器控制台

    b. 在程序包管理器控制台中,输入 Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612。

  3. 将下面的代码添加到 Program {...} 类中。

  4. 使用注册应用时获得的客户端 ID 替换“{ClientID}”。 请参阅向 Azure AD 注册应用

  5. 安装 Microsoft.IdentityModel.Clients.ActiveDirectory 程序包后,将 using Microsoft.IdentityModel.Clients.ActiveDirectory; 添加到 Program.cs 中。

  6. 运行控制台应用,并登录到你的 Power BI 帐户。 应该可以在控制台窗口中看到令牌字符串。

获取身份验证安全令牌的示例代码

将此代码添加到 Program {...}。

  • 调用操作的令牌变量:
  private static string token = string.Empty;

  static void Main(string[] args)
  {
  }
  • 在 static void Main (string[] args) 中:
  static void Main(string[] args)
  {
    //Get an authentication access token
    token = GetToken();
  }
  • 添加 GetToken() 方法:
       #region Get an authentication access token
       private static string GetToken()
       {
           // TODO: Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612
           // and add using Microsoft.IdentityModel.Clients.ActiveDirectory

           //The client id that Azure AD created when you registered your client app.
           string clientID = "{Client_ID}";

           //RedirectUri you used when you register your app.
           //For a client app, a redirect uri gives Azure AD more details on the application that it will authenticate.
           // You can use this redirect uri for your client app
           string redirectUri = "https://login.live.com/oauth20_desktop.srf";

           //Resource Uri for Power BI API
           string resourceUri = "https://analysis.windows.net/powerbi/api";

           //OAuth2 authority Uri
           string authorityUri = "https://login.windows.net/common/oauth2/authorize";

           //Get access token:
           // To call a Power BI REST operation, create an instance of AuthenticationContext and call AcquireToken
           // AuthenticationContext is part of the Active Directory Authentication Library NuGet package
           // To install the Active Directory Authentication Library NuGet package in Visual Studio,
           //  run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.

           // AcquireToken will acquire an Azure access token
           // Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
           AuthenticationContext authContext = new AuthenticationContext(authorityUri);
           string token = authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)).AccessToken;

           Console.WriteLine(token);
           Console.ReadLine();

           return token;
       }

       #endregion

获得身份验证令牌后,就可以调用任何 Power BI 操作。 下一步演示如何调用创建数据集操作来创建数据集,以便将数据推送到仪表板。

下一步将演示如何在 Power BI 中创建数据集

下面是完整代码清单

完整代码清单

using System;
using Microsoft.IdentityModel.Clients.ActiveDirectory;

namespace walkthrough_push_data
{
    class Program
    {
        private static string token = string.Empty;

        static void Main(string[] args)
        {

            //Get an authentication access token
            token = GetToken();

        }

        #region Get an authentication access token
        private static string GetToken()
        {
            // TODO: Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612
            // and add using Microsoft.IdentityModel.Clients.ActiveDirectory

            //The client id that Azure AD created when you registered your client app.
            string clientID = "{Client_ID}";

            //RedirectUri you used when you register your app.
            //For a client app, a redirect uri gives Azure AD more details on the application that it will authenticate.
            // You can use this redirect uri for your client app
            string redirectUri = "https://login.live.com/oauth20_desktop.srf";

            //Resource Uri for Power BI API
            string resourceUri = "https://analysis.windows.net/powerbi/api";

            //OAuth2 authority Uri
            string authorityUri = "https://login.windows.net/common/oauth2/authorize";

            //Get access token:
            // To call a Power BI REST operation, create an instance of AuthenticationContext and call AcquireToken
            // AuthenticationContext is part of the Active Directory Authentication Library NuGet package
            // To install the Active Directory Authentication Library NuGet package in Visual Studio,
            //  run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.

            // AcquireToken will acquire an Azure access token
            // Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
            AuthenticationContext authContext = new AuthenticationContext(authorityUri);
            string token = authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)).AccessToken;

            Console.WriteLine(token);
            Console.ReadLine();

            return token;
        }

        #endregion

    }
}

下一步 >

另请参阅

在 Power BI 中创建数据集
使用 Azure AD 注册应用
Azure AD Authentication Library for .NET NuGet 程序包
将数据推送到 Power BI 数据集
Power BI REST API 概述
Power BI REST API 引用
更多问题? 尝试参与 Power BI 社区