PowerBI 使用 M 函数调用 REST API

前面有介绍过Rest Api的使用,PowerBI rest api初识,PowerBI REST API 进阶,但是应该还是有人不知道如果使用M语言来获取Token,如果还不知道怎么创建应用的,可以去看先前的文章,应用创建完之后,需要用到client_id,如下图

file

来看一下Postman中运行的效果,可以正常获取到token

file

方法一

那么接下来就在PowerBI中使用M语言来实现,进入到PQ页面,新建数据源—空查询,body部分只是用是&符把刚postman中的参数和值连接起来,

file

上面body部分很长,阅读起来可能会很麻烦,也可以使用下面的方法,

file

file

使用上面两种写法都可以获取token,但还存在一个问题,就是使用了用户名和密码,对于很多公司可能强制3个月或者更短的周期就要换一次密码,所以接下来介绍另外一种方法。

方法二

这里接口和方法一稍有不同是原先common部分替换成了tenantId,然后grant_type换成了client_credentials

另外还用到了secrets,还没有创建的话,需要创建一个。值只在第一次创建时可见,所以创建完记得保存,此外,secrets现在同样有有效期了,不过时间可以设置的长一些,目前最长是两年。

file

之后代码其实和方法一就类似了

file

获取了token,就可以传递到其他查询中来用,这里一次查询了多个Api的数据,方法也很简单,使用expand=将四个接口组合起来,这样就可以请求一次就获取4个接口的数据了。

file

为了代码简单,上面代码并未展开结果,手动把结果展开就好,

file

至此,我们就可以通过在PQ里写M语言来获取包括工作区、报表名称、数据集、用户的相关信息了。