Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 微软图形。如何接收所有者';s远程项目的信息_C#_Onedrive_Microsoft Graph Api - Fatal编程技术网

C# 微软图形。如何接收所有者';s远程项目的信息

C# 微软图形。如何接收所有者';s远程项目的信息,c#,onedrive,microsoft-graph-api,C#,Onedrive,Microsoft Graph Api,我使用Microsoft Graph来浏览用户OneDrive文件夹和文件(以Microsoft Graph表示的DriveItem)。当我收到DriveItem信息时,我会尝试读取其所有者:姓名和电子邮件。 对于我使用的共享文件/文件夹,对于我使用的本地文件/文件夹。对于此Id,我可以读取用户信息: GraphServiceClient.Users[Id].Request().GetAsync(); 但是,我对remote DriveItem有问题。我知道,首先我应该通过从中读取数据来读取远

我使用Microsoft Graph来浏览用户OneDrive文件夹和文件(以Microsoft Graph表示的DriveItem)。当我收到DriveItem信息时,我会尝试读取其所有者:姓名和电子邮件。 对于我使用的共享文件/文件夹,对于我使用的本地文件/文件夹。对于此Id,我可以读取用户信息:

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

但是,我对remote DriveItem有问题。我知道,首先我应该通过从中读取数据来读取远程项目信息。 所以,首先我读了它:

var remote=wait 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远程项目的所有者信息?

看起来像
GraphServiceClient.Users[RemoteOwnerId].Request().GetAsync()‌根本不能用于接收有关远程
DriveItem
所有者的信息。 所有信息应通过请求返回:

var remote=await GraphServiceClient.Drives[RemoteDriveId].Items[RemoteItemId].Request().GetAsync()

但是,MicrosoftGraph
v1.0
返回空的
remote.Shared.Owner.User
。只有Microsoft Graph
beta
返回此结构并填充
displayName
!臭虫


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

是否有可能主叫身份就是实际创建您正在查询的远程项目的身份?@Brad,是的,新项目是在查询前30分钟创建的,但其所有者是旧的OneDrive用户。这有问题吗?我使用正确的API方法吗?将
GraphServiceClient.Users[RemoteOwnerId].Request().GetAsync()返回所有者帐户信息?
驱动器
对象应该有一个可用于您的目的的
所有者
属性。@Brad,对于用户默认驱动器,
所有者
已填充,而对于远程驱动器则为空。