如何在MS Graph

时间:2017-05-24 19:06:59

标签: sharepoint microsoft-graph onedrive

我正在尝试使用Graph API来检索Sharepoint文档库中的文件层次结构。由于文档库存储在“驱动器”中(技术上是否正确称为OneDrive?),我使用/drives端点来获取文件列表,如下所示:

https://graph.microsoft.com/beta/drives/{driveid}/root/children

我想从通过Sharepoint查看这些项目时从一些自定义列中获取信息。使用?expand=fields不起作用,因为fields仅存在于/sites端点的listItem对象中,而不存在于driveItem端点的/drives对象中。如果我尝试从单个driveItem获取listItem(将图形从OneDrive遍历到Sharepoint),然后展开字段,例如

https://graph.microsoft.com/beta/drives/{driveid}/items/{driveItemId}/listItem?expand=fields

这会检索内置列(Author,DocIcon和其他一些列),但似乎无法检索自定义列。 我还尝试从/sites端点获取文件列表,使用?expand=fields将获取自定义列,但它从每个子文件夹获取每个文件,而不是当前文件夹路径。但我觉得应该有自己的问题。

是否可以从driveItems检索自定义列信息?

3 个答案:

答案 0 :(得分:1)

我做了一些测试。应该做的是:

https://graph.microsoft.com/beta/drives/{driveid}/root/children?$select=id,MyCustomColumnName

但是,当我这样做时,它只返回了那个id字段。在我看来,这是图中的一个错误,因为这种类型的查询在SharePoint REST API中起作用。

如果这有帮助,您可以使用SharePoint REST api完成此操作。您的端点查询类似于:

https://{yoursite}.sharepoint.com/sites/{sitename}/_api/web/lists/(' {DocumentLibraryID}')/items?$select=id,MyCustomColumnName

还有其他方法可以进行相同的查询。

答案 1 :(得分:1)

我花了很多时间研究各种语法可能性,最终能够使用这种查询格式获取自定义库属性。这是唯一为文档库生成我的自定义/用户定义字段的字段。

https://graph.microsoft.com/v1.0/drives/insert_drive_id_here/root/children?expand=listItem

缩短结果:

{
"@odata.context": "...",
"value": [
        {
        "@microsoft.graph.downloadUrl": "...",
        "listItem@odata.context": "...",
        "listItem": {
            "@odata.etag": "...",
            "fields@odata.context": "...",
            "fields": {
                "@odata.etag": "...",
                "Title": "...",
                "Other_Custom_Property": "..."
                }
            }
        }
    ]
}

答案 2 :(得分:0)

尝试列表端点,然后展开driveItem和fields。您现在拥有自定义列字段和驱动器项字段。

 /beta/sites/[site-id]/lists/[list-id]/items?expand=driveitem,fields&filter=(fields/customColumn eq 'someValue')