首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Power Query中调用Power BI接口

Power Query中调用Power BI接口
EN

Stack Overflow用户
提问于 2021-05-28 20:31:12
回答 1查看 72关注 0票数 0

我正在尝试从Power BI API服务中检索数据,这也是通过PowerShell代码来完成的。但不幸的是,由于某些情况,我无法将其部署到生产环境中。因此,现在我正试图在Power BI桌面本身中完成相同的事情,这样我就可以从power Query中调用Power BI rest API。有很多关于在power query中调用API的博文,但它们都需要Power BI App注册的客户端ID,而我没有。我可以在PowerShell中使用我的用户名和密码成功地进行调用,甚至还收到了来自API的响应。

请找到下面的PowerShell代码,并让我知道,如果我们可以复制相同的电力查询。

代码语言:javascript
运行
AI代码解释
复制
# User credential
$User = 'shahab***@*****.com'
$Pword = ConvertTo-SecureString –String '***password***' –AsPlainText -Force

$Credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $User,$Pword

# Connect to service
Login-PowerBIServiceAccount -Credential $Credential  

#Get Bearer token
$headers = Get-PowerBIAccessToken  

$uri = 'https://api.powerbi.com/v1.0/myorg/datasets/f52f2abc-6445-41ee-ce02-3908c6e18dd4/refreshes' 
$refreshes = Invoke-RestMethod -Uri $uri -Headers $headers -Method GET
$xs= $refreshes

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-09-30 16:54:47

有了包装器,你就会想要这样的东西。

代码语言:javascript
运行
AI代码解释
复制
WebRequest_Simple(
    "https://api.powerbi.com",
    "v1.0/myorg/datasets/f52f2abc-6445-41ee-ce02-3908c6e18dd4/refreshes",
    [
        Headers = [ Authorization = "Bearer OAuthTokenHere" ]
    ]
)

如果url有一个查询字符串(?后面的部分),那么您可以使用options[Query]

Web响应

完整查询

来源:WebRequest_Simple.pq

代码语言:javascript
运行
AI代码解释
复制
let    
    /*
    Wrapper for Web.Contents  returns response metadata 
        for options, see: <https://docs.microsoft.com/en-us/powerquery-m/web-contents#__toc360793395>

    */
    WebRequest_Simple
        =  (
            base_url as text,
            optional relative_path as nullable text,
            optional options       as nullable record
        )
        as record =>
        let 
    
            headers = options[Headers]?, //or: ?? [ Accept = "application/json" ],

            merged_options = [      
                Query = options[Query]?,
                RelativePath = relative_path,
                ManualStatusHandling = options[ManualStatusHandling]? ?? { 400, 404 },
                Headers = headers
            ],
        
            bytes = Web.Contents(base_url, merged_options),
            response = Binary.Buffer(bytes),
            response_metadata = Value.Metadata( bytes ),
            status_code = response_metadata[Response.Status]?,
            json = Json.Document(response),
            Final = [
                request_url = metadata[Content.Uri](),
                status_code = status_code,
                metadata = response_metadata,
                IsJson = not (try json)[HasError],
                response = response,
                json = json
            ]
        in 
            Final,

    tests = {
        WebRequest_Simple("https://httpbin.org", "json"), // expect: json
        WebRequest_Simple("https://www.google.com"),       // expect: html
        WebRequest_Simple(
            "https://api.powerbi.com",
            "v1.0/myorg/datasets/f52f2abc-6445-41ee-ce02-3908c6e18dd4/refreshes",
            [
                Headers = [ Authorization = "Bearer OAuthTokenHere" ]
            ]
        )
    },

    FinalResults = Table.FromRecords(tests,
        type table[
            status_code = text, request_url = text, metadata = record,
            response = binary, IsJson = logical, json = any],
        MissingField.Error
    )    
in
    FinalResults
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67745142

复制
相关文章
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux中,管道使用竖线符号 | 表示,它位于两个命令之间。管道的基本语法如下:
网络技术联盟站
2023/09/06
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
3K0
如何在Linux中使用管道将命令的输出传递给其他命令?
在Linux系统中,管道(Pipeline)是一种强大的工具,它允许将一个命令的输出作为另一个命令的输入。通过管道,我们可以将多个命令串联在一起,实现数据的流动和处理。本文将详细介绍如何在Linux中使用管道将命令的输出传递给其他命令,并提供一些常见的使用示例。
网络技术联盟站
2023/06/14
1.5K0
如何在Linux中使用管道将命令的输出传递给其他命令?
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.4K0
Laravel实现redis发布-订阅
如果说我们需要一个比较简单的这种机制,我们可以采用redis这个轻量级的订阅机制,我们可以参考redis的 Publish/Subscribe 机制,得到比较好的问题解决方案 当然,如果是项目比较复杂,可以考虑使用Kafka, RabbitMQ之类的消息队列组件
憧憬博客
2020/07/20
1.3K0
react event事件订阅传值
event(事件订阅)是react新增的通信方式。它类似webSorcket和postMessage的通信方式,一边发送传值,另一边监听接收. 适合兄弟组件传值
心念
2023/01/11
5250
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.5K0
将多个属性传递给 Vue 组件的几种方式
所有使用基于组件的体系结构(如Vue和React)的开发人员都知道,创建可重用组件是很困难的,而且大多数情况下,最终会通过传入大量的属性,以便从外部更容易地控制和自定义组件。这并不坏,但是传递大量属性确实会变得有点麻烦和丑陋。
前端小智@大迁世界
2020/05/11
2K0
python接口测试:如何将A接口的返回值传递给B接口
一种方式是可以通过数据库来获取,但是通过这次接口测试,我发现读取数据库有一个缺点:速度慢
冰霜
2022/03/15
2.1K0
React篇(029)-如何将参数传递给事件处理程序或回调函数?
你可以使用箭头函数来包装事件处理器并传递参数: <button onClick={() => this.handleClick(id)} /> 这相当于调用 .bind: <button onClick={this.handleClick.bind(this, id)} />
齐丶先丶森
2022/05/12
3.9K0
Laravel如何优雅的使用Swoole
正在做一个智能家居的项目,接收下位机(就是控制智能家居硬件模块的HUB)协议解析,Web端维护硬件状态,利用APP交互。由于下位机数据是发送到服务器的XXX端口,所以必须对XXX端口进行监听。其实和聊天室的概念差不多,研究了一下workerman、swoole和其他几个开源的项目,决定采用swoole。
OwenZhang
2021/12/08
1.6K0
网络数据是如何传递给进程的
在用户态空间,调用发送数据接口 send/sento/wirte 等写数据包,在内核空间会根据不同的协议走不同的流程。以TCP为例,TCP是一种流协议,内核只是将数据包追加到套接字的发送队列中,真正发送数据的时刻,则是由TCP协议来控制的。TCP协议处理完成之后会交给IP协议继续处理,最后会调用网卡的发送函数,将数据包发送到网卡。
luoxn28
2020/05/18
1.6K0
程序员如何使用RSS订阅网站更新
很多国内程序员可能都有这种疑惑,去哪里看技术圈最新的消息?怎么知道厂都在用什么技术?做什么?怎么知道圈内最新的paper?怎么跟踪国内外技术大佬的博客?
伍六七AI编程
2021/05/17
2.2K0
微信下线模板消息,订阅通知如何使用?
指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅向政务民生、医疗等公共服务领域开放;
冷冷
2021/02/04
3.4K0
如何用RSS订阅?
我们常常会有订阅别人文章的需求,有更新的时候希望能有提醒的功能,RSS就是这样一个订阅的方式。
机智的程序员小熊
2019/01/12
4.9K0
如何用RSS订阅?
如何使用markdown书写微信订阅号素材?
我们知道,运营微信订阅号难免与编辑器打交道,而微信自带的编辑器,又有诸多的限制,如果一个人,一天,发一篇文章,花费在编辑格式,美化页面上的时间,就太可惜了。
程序员小助手
2020/04/08
1.7K0
laravel 中如何使用ajax和vue总结
最近写一个项目是基于laravel框架的,这个框架传言是为艺术而创作的优雅框架,简洁分明的风格,很吸引我,所以最近研究比较多。本次就是基于该框架然后将Vue插件加入实现一定的功能,vue插件本身强大,具体不说了,有兴趣的同学可以去官网
用户8449980
2021/07/13
2K0
如何正确使用 Composer 安装 Laravel 扩展包
正确使用 Composer 安装 Laravel 扩展包: 简单解释composer install如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
全栈程序员站长
2022/07/08
1.7K0
点击加载更多

相似问题

Laravel Cashier -使用条带id取消订阅

51

使用Laravel Cashier & Stripe开始无卡订阅

21

Laravel Cashier -单个用户的多个订阅

15

使用Laravel & cashier直接从Stripe检查stripe订阅状态

21

如何使用Laravel Cashier获取订阅今天到期的所有用户

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档