我有一些问题使用自定义连接器来获得我想要的Microsoft Graph . 基本上,我要做的是将Email Activity User Detail报告转换为Power BI报告 .
该报告的URL如下:
/v1.0/reports/getEmailActivityUserDetail(period='D7')
为了创建这个自定义连接器,我一直在使用MyGraph Connector Sample,因为我不太熟悉Power Query的使用,也不熟悉Graph API .
我已经创建了连接器并且可以连接到API和所有内容,但不是将数据返回给我,所有查询都返回给我一个字节数组,我似乎无法做任何事情 .
通过查看Fiddler跟踪,我想要的实际数据是沿途获取的,但看起来Graph API使用重定向URL来下载,我不确定我的Power Query代码正在处理 . 我认为它可能只是将重定向URL作为字符串而不是实际数据返回 .
除此之外,我的查询没有代码来处理 NextLink
如果它超过了返回的行数(我想200?),所以我想它一旦我确实工作就不会返回完整的数据集 . 如何最好地处理?
不幸的是,我对Power Query很新(这是我第一次遇到它),所以我不知道从哪里开始进行必要的更改以获得我需要的东西 .
任何帮助将不胜感激 .
Microsoft Graph API - GET Reports in Graph Explorer and Power BI问题触及了类似的问题,尽管这是通过Application接口本身,它本身似乎无法获得必要的授权令牌 .
编辑:感谢Marc LaFleur的建议,我设法解决了这个问题 .
问题确实是我试图使用Odata.Feed作为源 . 换行:
source = OData.Feed("https://graph.microsoft.com/v1.0/me/", null, [ ODataVersion = 4, MoreColumns = true ])
至:
source = Csv.Document(Web.Contents("https://graph.microsoft.com/v1.0/reports/getEmailActivityUserDetail(period='D7')"))
修复了问题并返回了正确的值而没有其他更改 .
1 回答
Microsoft Graph的报告不是传统的REST endpoints . 它们不是返回OData / JSON,而是将一个临时URL返回到
CSV
格式的物理文件 .来自documentation:
从您链接的示例来看,它看起来像是期待一个OData.Feed源(
source = OData.Feed
) . 在这种情况下,您没有获得OData结果,而是获得CSV
文件的URL . 我相信你正在寻找Csv.Document .