Как правильно получить все элементы, которыми я поделилась, используя Microsoft Graph API? - PullRequest
0 голосов
/ 07 июня 2019

Microsoft Graph API C # SDK, похоже, возвращает нуль для некоторых полей элементов, запрашиваемых с помощью запроса SharedWithMe. Это включает, в частности, WebDavUrl и тип пакета.

Я позаботился о том, чтобы мне поделились элементом OneNote, и проверил правильность данных в обозревателе графиков. Я также проверил, что разрешения моего приложения были правильно установлены как: «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 API через Graph Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer) с эквивалентным GET: https://graph.microsoft.com/v1.0/me/drive/sharedWithMe, он показал мне все элементы, которыми в данный момент делятся со мной, и всю информацию, связанную с ними. Однако, когда я выполняю фрагмент кода над PackageType в «item», он всегда равен нулю.


Edit: https://docs.microsoft.com/en-us/graph/api/drive-sharedwithme?view=graph-rest-1.0&tabs=cs предложить запросить элемент с помощью remoteItem-driveId и remoteItem-id. Я посмотрю, куда это приведет меня.

1 Ответ

0 голосов
/ 12 июня 2019

Это то, что я придумал после экспериментов.Вы получите ответ в виде 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 было бы более приятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...