我使用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 回答
看起来像
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 Graphbeta
返回此结构,填充displayName
!错误?下一个问题:如何接收远程项目所有者的电子邮件和照片?