如何通过 REST API 从 Rails APP 获取用于在 Power BI 中创建数据集的访问令牌

How to get access token for creating dataset in Power BI through REST API from Rails APP

目前我只有client_idclient_secret,创建数据集还需要什么参数

我终于明白了。首先,我们必须连接我们的 Azure AD 和 Power BI 应用程序。

def index
  update_token
  if session['access_token']

  redirect_to YOUR_ACTION
  else
    client = get_client
    a = client.auth_code.authorize_url(:client_id => CLIENT_ID, :resource => RESOURCE_ID, :redirect_uri => REDIRECT_URI)
    redirect_to(a) 
  end
end

def callback
  begin
    @code = params[:code]
    client = get_client
    token = client.auth_code.get_token(@code, :redirect_uri => REDIRECT_URI, )
    session['access_token'] = token.token
    if token.token.present?
     YOUR_ACTION
    end
  end
end

def update_token
  token = session['access_token']
  refresh_token = session['refresh_token']

  expire_at = session['expire_at']
  @access_token = OAuth2::AccessToken.from_hash(get_client, { :access_token => token, :refresh_token =>  refresh_token, :expire_at => expire_at, :header_format => 'Bearer %s' } )

  if @access_token.expired?

   @access_token = @access_token.refresh!;
   session['access_token'] = @access_token.token
   session['refresh_token'] = @access_token.refresh_token
   session['expire_at'] = @access_token.expire_at  
   session['instance_url']  = @access_token.params['instance_url']
  end
end

def get_client
  client = OAuth2::Client.new(CLIENT_ID, CLIENT_SECRET, :site => AUTHORITY, :authorize_url =>  AUTHORIZE_URL, :token_url => TOKEN_URL )
  client
end

def azure
  callback
end

为了成功,我不得不忘记我之前读过的所有内容……然后重新开始: https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-iframe/

在 Azure 门户网站上 创建 Power BI 工作区集合,并获取访问密钥(配置)

获取 PBIX 来自 Power BI Desktop 或示例文件

使用 CLI (必须使用那个:https://github.com/Microsoft/PowerBI-Cli) 创建 Power BI 工作区 将 .pbix 文件导入工作区 获取报告 ID

在我的 RAILS 应用程序中 (使用 https://github.com/jwt/ruby-jwt ) 将报告嵌入网页

我无法描述遇到的许多错误,或者 Azure 的 signup/login 问题......到达那里真的很痛苦。

大家干杯。