dsfsw1233
2016-04-18 12:34
浏览 420
已采纳

从PHP嵌入Power BI。 获取Azure身份验证令牌OAuth

I'm trying to utilise Power BI Embedded from a PHP based website to embed a non-public Power BI document into a web page (behind a user login).

There is a C# version here that I have got running: https://github.com/Azure-Samples/power-bi-embedded-integrate-report-into-web-app/. I effectively need to replicate this in PHP).

(also see https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-get-started/)

I'm stuck trying to obtain a auth-token.

The C# site generates an auth-token that if I paste into my PHP site, I can use to load the Power BI sheet. However, I'm not sure how to generate this from PHP - presumably a curl request somewhere, but I can't work out what I need to send where? [Edit: I've been sniffing packets and it doesn't seem to make an http request to generate this, so perhaps I just need to know how to generate it myself?]. The C# is using a built in library (PowerBIToken) to do this.

public async Task<ActionResult> Report(string reportId)
    {


        var devToken = PowerBIToken.CreateDevToken(this.workspaceCollection, this.workspaceId);
        using (var client = this.CreatePowerBIClient(devToken))
        {
            var reportsResponse = await client.Reports.GetReportsAsync(this.workspaceCollection, this.workspaceId);
            var report = reportsResponse.Value.FirstOrDefault(r => r.Id == reportId);
            var embedToken = PowerBIToken.CreateReportEmbedToken(this.workspaceCollection, this.workspaceId, report.Id);

            var viewModel = new ReportViewModel
            {
                Report = report,
                AccessToken = embedToken.Generate(this.accessKey)
            };

            return View(viewModel);
        }
    }

I'm looking for a simple solution where I can walk through each step rather than a bloated library if possible.

图片转代码服务由CSDN问答提供 功能建议

我正在尝试从基于PHP的网站利用Power BI Embedded将非公共Power BI文档嵌入到 一个网页(在用户登录后面)。

这里有一个C#版本,我已经运行了: https://github.com/Azure-Samples/power-bi-embedded-integrate-report-into-web-app / 。 我实际上需要在PHP中复制它。

(另见 https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-get-started/

我一直试图获取一个auth-token。

C#站点生成一个auth-token,如果我粘贴到我的PHP站点,我可以 用于加载Power BI表。 但是,我不确定如何从PHP生成这个 - 可能是某个地方的卷曲请求,但我无法弄清楚我需要发送到哪里? [编辑:我一直在嗅探数据包,它似乎没有发出http请求来生成这个,所以也许我只需要知道如何自己生成它?]。 C#使用内置库(PowerBIToken)来执行此操作。

  public async Task&lt; ActionResult&gt;  Report(string reportId)
 {
 
 
 var devToken = PowerBIToken.CreateDevToken(this.workspaceCollection,this.workspaceId); 
 using(var client = this.CreatePowerBIClient(devToken))
 {
 var  reportsResponse = await client.Reports.GetReportsAsync(this.workspaceCollection,this.workspaceId); 
 var report = reportsResponse.Value.FirstOrDefault(r =&gt; r.Id == reportId); 
 var embedToken = PowerBIToken.CreateReportEmbedToken(  this.workspaceCollection,this.workspaceId,report.Id); 
 
 var viewModel = new ReportViewModel 
 {
 Report = report,
 AccessToken = embedToken.Generate(this.accessKey)
}; 
 \  n返回View(viewModel); 
} 
} 
   
 
 

我正在寻找一个简单的解决方案,我可以遍历每个步骤而不是膨胀的库 如果可能的话。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题