对于通过SharedWithMe请求查询的某些项目字段,Microsoft Graph API C#SDK似乎返回null。尤其是其中包括WebDavUrl和包类型。
我确保与我共享一个OneNote项,并通过Graph Explorer验证了数据的正确性。我还验证了我的应用程序的权限是否正确设置为:“ User.Read Notes.Read.All Sites.Read.All Files.Read.All”
var graphClient = MicrosoftGraphService.Instance.GraphProvider;
var driveItems = await graphClient.Me.Drive.SharedWithMe().Request().GetAsync();
foreach (var item in driveItems)
{
if (item.Package.Type == "oneNote") {...}
}
当我在Graph Explorer(https://developer.microsoft.com/en-us/graph/graph-explorer)上以等效的GET:https://graph.microsoft.com/v1.0/me/drive/sharedWithMe查询Graph API时,它向我显示了当前与我共享的所有项目以及与它们相关的所有信息。但是,当我执行“ item”中PackageType上方的代码段时,始终为空。
编辑: https://docs.microsoft.com/en-us/graph/api/drive-sharedwithme?view=graph-rest-1.0&tabs=cs建议查询带有remoteItem-driveId和remoteItem-id的商品。我会看到这会引导我。
答案 0 :(得分:0)
这是我经过实验得出的。您以JSON形式获得响应,在我看来,该响应足以继续。
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Your AccessToken");
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var message = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me/drive/sharedWithMe");
var response = await graphClient.HttpProvider.SendAsync(message);
var json = await response.Content.ReadAsStringAsync();
当然,使用SDK的可行解决方案会更有趣。