Microsoft Graph。如何接收远程项目的所有者信息

时间:2017-02-24 16:35:33

标签: c# onedrive microsoft-graph

我使用Microsoft Graph浏览用户OneDrive文件夹和文件(根据Microsoft Graph的DriveItem)。当我收到DriveItem信息时,我尝试读取它的所有者:姓名和电子邮件。 对于共享文件/文件夹,我使用Item.Shared.Owner.User.Id,对于本地文件/文件夹,我使用Item.CreatedBy.User.Id。对于此ID,我可以阅读用户的信息:

GraphServiceClient.Users[Id].Request().GetAsync();

但是,我有远程DriveItem的问题。据我所知,起初我应该通过RemoteItem structure的数据读取远程项目信息。 所以,起初我读了它:

var remote = await GraphServiceClient.Drives[Item.RemoteItem.ParentReference.DriveId].Items[Item.RemoteItem.Id].Request().GetAsync();

然后我尝试获取远程项目所有者:

GraphServiceClient.Users[remote.CreatedBy.User.Id].Request().GetAsync();

但是我收到了登录用户信息而不是远程用户!好像我打电话:

GraphServiceClient.Me.Request().GetAsync();

为什么呢?以及如何接收OneDrive远程项目的所有者信息?

1 个答案:

答案 0 :(得分:0)

看起来GraphServiceClient.Users[RemoteOwnerId].Request().GetAsync()‌似乎无法用于接收有关远程DriveItem所有者的信息。 并且所有信息都应该按要求返回: var remote = await GraphServiceClient.Drives[RemoteDriveId].Items[RemoteItemId].Request().GetAsync();

但是,Microsoft Graph v1.0返回空remote.Shared.Owner.User。只有Microsoft Graph beta以填充的displayName返回此结构!错误?

下一个问题:如何接收远程项目所有者的电子邮件和照片?