Я пытаюсь вызвать конечную точку поиска API OneDrive на диске (т. Е. https://graph.microsoft.com/v1.0/drives/{drive-id}/root/search(q='mysearchterm')
.
Это отлично работает в Graph Explorer, однако я не получаю никаких результатов поиска с потоком учетных данных клиента на том же диске.
Моя регистрация приложения имеет все необходимые разрешения приложения, указанные в документации API (Files.Read.All
, Files.ReadWrite.All
, Sites.Read.All
, Sites.ReadWrite.All
), и чтение дисков, их элементов, загрузка элементов диска - все работает нормально. Единственное, что не работает, это поиск по элементам диска. Я просто возвращаю пустой массив без ошибок;
{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#Collection(driveItem)","value":[]}
Я использую adal-node с acquireTokenWithClientCredentials
.
var adal = require("adal-node");
const TENANT = "{tenant-name-here}.onmicrosoft.com";
const CLIENT_ID = "{Application-id-here}";
const CLIENT_SECRET = "{Application-key-here}";
function getToken() {
return new Promise((resolve, reject) => {
const authContext = new adal.AuthenticationContext(
`https://login.microsoftonline.com/${TENANT}`
);
authContext.acquireTokenWithClientCredentials(
GRAPH_URL,
CLIENT_ID,
CLIENT_SECRET,
(err, tokenRes) => {
if (err) {
reject(err);
}
resolve(tokenRes.accessToken);
}
);
});
}
Диск, на котором я ищу, - это библиотека документов SharePoint.