2016-06-13 8 views
1

Я хочу перечислить все мои OneDrive для бизнес-элементов в UWP-приложении. Для этого я использую «Библиотеку клиентов Microsoft Graph» от NuGet. Это библиотека оберток для Microsoft REST-API.Microsoft Graph List OneDrive Items

Когда я пытаюсь получить все элементы или дети (я попробовал оба) с моего корневого диска или из специального идентификатора папки, я просто получаю пустой список. Но на моем Диске есть разные файлы и папки. Даже когда я использую REST-API без этой оболочки, я получаю только пустой результат.

Но когда я использую функцию «Недавние», я получаю список моих последних использованных элементов.

// Returns an empty result without error 
GraphServiceClient.Me.Drive.Items.Request().GetAsync() 
GraphServiceClient.Me.Drive.Root.Children.Request().GetAsync() 
GraphServiceClient.Drives["id"].Items.Request().GetAsync() 

// Returns all my recent used items 
GraphServiceClient.Me.Drive.Recent().Request().GetAsync() 
GraphServiceClient.Drives["id"].Recent().Request().GetAsync() 

HTTP-трафика, выглядит следующим образом:

GET https://graph.microsoft.com/v1.0/me/drive/root/children HTTP/1.1 
SdkVersion: graph-dotnet-1.0.1 
Cache-Control: no-store, no-cache 
Authorization: Bearer 123456789
Host: graph.microsoft.com 
Connection: Keep-Alive 

// Response: 

HTTP/1.1 200 OK 
Cache-Control: private 
Transfer-Encoding: chunked 
Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8 
Server: Microsoft-IIS/8.5 
request-id: 123456-789
client-request-id: 123456-789
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West Europe","Slice":"SliceB","ScaleUnit":"000","Host":"AGSFE_IN_3","ADSiteName":"AMS"}} 
OData-Version: 4.0 
Duration: 823.6454 
X-Powered-By: ASP.NET 
Date: Wed, 15 Jun 2016 06:56:29 GMT 

8c 
{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users('123456-7890123-456789')/drive/root/children","value":[]} 
0 

(я удалил Ид, так что это еще не проблема)

Может кто-то помочь?

+0

Коллекция предметов не перечислима, поэтому ожидается, что она потерпит неудачу. Вам нужно использовать Root.Children для доступа к элементам. Однако, похоже, что это тоже не работа для вас. Можете ли вы использовать Fiddler, чтобы получить трафик фактического HTTP-трафика и поделиться им? –

ответ

1

Чтобы получить объекты из OneDrive с помощью Microsoft Graph, нам нужно сделать запрос конечной точке. Метод «Запрос» не сделал реального запроса, пока мы не назовем метод «GetAsync».

Вот пример, который получают дети пункты диска по умолчанию:

var items = await graphserviceClient.Me.Drive.Root.Children.Request().GetAsync(); 

Обратитесь к here более подробно об этом SDK.

+0

О, извините. Я забыл скопировать «GetAsync» часть моего запроса. Я получаю результат с пустым списком детей. –

+0

Была ли проблема исправлена ​​после добавления метода GetAsync? –

+0

Нет. Я уже использовал его. Я просто забыл его скопировать! См. Комментарий выше. –