我正在尝试使用 Graph API 扩展 MS Teams 驱动器(SharePoint 文档库)的所有项目。
我可以访问团队(组),但无法直接展开 Items 集合。如果可以的话那就太好了,所以我不需要另一个查询(性能!)。
根据文档,有 $expand= 选项,在 C# 中我有 Expand() 扩展方法。不幸的是,我找不到任何有关如何使用它的工作示例。好吧,官方文档中有一个例子:
string messageId = "<guid>";
Message message = await graphClient.Me.Messages[messageId]
.Request()
.Expand("attachments")
.GetAsync();
但我无法成功复制它。该属性应该是“Items”,所以我想我应该使用小写的“items”(但我也尝试使用“Items”)。
这是teamsDrive
,当我不展开任何内容时,您会看到属性为“Null”(它应该有项目,库中存在文档):
teamDrive
{Microsoft.Graph.Drive}
Activities [IDriveActivitiesCollectionPage]:null
AdditionalData [IDictionary]:Count = 3
Bundles [IDriveBundlesCollectionPage]:null
CreatedBy:{Microsoft.Graph.IdentitySet}
CreatedByUser [User]:null
CreatedDateTime:{30/05/2020 23:46:46 +00:00}
Description [string]:""
DriveType [string]:"documentLibrary"
ETag [string]:null
Following [IDriveFollowingCollectionPage]:null
Id [string]:"b!QXf1ydGT80WWzfKB0A5IvAkI2isDR2NEh9jgSseDzmFpXz0eAriVS6TXSBEiZhVP"
Items [IDriveItemsCollectionPage]:null
LastModifiedBy [IdentitySet]:null
LastModifiedByUser [User]:null
所以,我尝试了以下方法:
var teamDrive = await graphClient.Groups[group.Id].Drive.Request().Expand("items").GetAsync();
但这给了我一个例外:
Status Code: BadRequest
Microsoft.Graph.ServiceException: Code: invalidRequest
Message: The request is malformed or incorrect.
Inner error:
AdditionalData:
request-id: 93ab7efd-0a33-4ff0-800e-d7e95acd8eb4
date: 2020-06-17T08:41:39
ClientRequestId: 93ab7efd-0a33-4ff0-800e-d7e95acd8eb4
at Microsoft.Graph.HttpProvider.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
我正在使用带有Microsoft.Graph.Beta NuGet包(版本0.18.0-preview - 最新版本)。
请注意,我在此请求中没有使用任何选择或过滤语句,因为其他人提到扩展时不允许这样做:扩展和过滤 MS Graph API 不起作用