问题
I am trying to get a drive's items via the Microsoft Graph Api (SDK) and tried the following options:
_graphServiceClient.Drives[driveInfo.Id].Items.Request().GetAsync()
:, this unfortunately results in an error with message error with message "The request is malformed or incorrect" and code "invalidRequest". If I execute_graphServiceClient.Drives[driveInfo.Id].Request().GetAsync()
however, I get back all drives but theItems
property isnull
._graphServiceClient.Drives[driveInfo.Id].Request().Expand(d => d.Items).GetAsync()
, this also results in an error with message "The request is malformed or incorrect" and code "invalidRequest".
I don't know how to go on from here, still researching, but the documentation is leaving me clueless at the moment. Anyone success with either .Expand()
or getting the actual files from a Drive?
Thanks, Y
回答1:
You only use Items
when you're fetching a single DriveItem
:
await graphClient
.Me
.Drive
.Items[item.Id]
.Request()
.GetAsync();
await graphClient
.Drives[drive.Id]
.Items[item.Id]
.Request()
.GetAsync();
When you want to retrieve a DriveItem
collection, you need to specify the root folder:
await graphClient
.Me
.Drive
.Root // <-- this is the root of the drive itself
.Children // <-- this is the DriveItem collection
.Request()
.GetAsync();
await graphClient
.Drives[drive.Id]
.Root
.Children
.Request()
.GetAsync();
The SDK unit tests are a good source for quick examples. For example, OneDriveTests.cs contains several examples for addressing Drives and DriveItems.
来源:https://stackoverflow.com/questions/55940857/getting-the-drives-items-from-microsoft-graph-api-the-request-is-malformed-or