Я использую следующий вызов Graph API для извлечения последних файлов из OneDrive для бизнеса;
https://graph.microsoft.com/v1.0/me/drive/recent
В ответе объекты driveitem
более разрежены, чем предполагает схема;
В частности, отсутствует свойство webUrl
.
Если я попытаюсь явно запросить это свойство следующим образом:
https://graph.microsoft.com/v1.0/me/drive/recent?select=webUrl
Затем я просто получаю следующий ответ;
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#Collection(driveItem)",
"value":[
{
"@odata.type":"#microsoft.graph.driveItem"
},
{
"@odata.type":"#microsoft.graph.driveItem"
},
{
"@odata.type":"#microsoft.graph.driveItem"
},
{
"@odata.type":"#microsoft.graph.driveItem"
},
{
"@odata.type":"#microsoft.graph.driveItem"
}
]
}
Как я могу получить эти данные из Graph API? Я пытался сделать последующие вызовы, чтобы получить элемент(ы) напрямую, используя этот вызов (согласно документация);
https://graph.microsoft.com/v1.0/drives/<remoteItem.driveId>/items/<id>
Однако это всегда кажется неудачным;
{
"error": {
"code": "itemNotFound",
"message": "The resource could not be found.",
"innerError": {
"request-id": "a86bdc25-771b-4b90-9c17-942e05bd9ed3",
"date": "2016-05-22T08:21:57"
}
}
}
Что касается разрешений Azure Active Directory, у меня зарегистрировано приложение Native Client, и я предоставил ему все возможные делегированные разрешения Microsoft Graph API (все 40 из них). Я знаю, что это излишество, но я просто хочу сначала заставить это работать, а затем постепенно удалять разрешения, пока у меня не останутся только необходимые.