Cloudrail - OneDrive API: запрос расширенного поиска завершается неудачно

Я использую cloudrail Node.Js v2.17.3.

Я должен сделать расширенный запрос на API OneDrive.

Часть аутентификации и получение / хранение учетных данных успешно выполнены. Вот запрос, который я должен сделать (согласно документу OneDrive): /drive/root/search(q='IMG_001.jpg')

Конечно, файл присутствует в моей учетной записи OneDrive.

Вот код:

const req = new cloudrail.types.AdvancedRequestSpecification("/drive/root/search(q='IMG_001.jpg')");
req.setMethod("GET");
req.setHeaders({"Content-Type": "application/json"});
service.advancedRequest(req, (err, res) => {
   console.log(err, res);
});

Err.message говорит: "Неверный API или ресурс".

Однако, когда я пытаюсь выполнить простой запрос "/drive/root/children", он работает...

Заранее спасибо.

1 ответ

Решение

Microsoft недавно представила свой новый API Graph, который, насколько я знаю, используется всеми сервисами. Таким образом, документация, на которую вы ссылаетесь, относится к новому API. Попробуйте вместо этого использовать '/drive/items/{the_folder_id или root}/view.search?q=txt'. Вам также может понадобиться URL кодировать параметр. Таким образом, самое безопасное решение, вероятно, будет следующим:

const url = "/drive/items/root/view.search?q=" + encodeURIComponent("[search query]");
const req = new cloudrail.types.AdvancedRequestSpecification(url);
req.setMethod("GET");
service.advancedRequest(req, (err, res) => {
    console.log(err, res);
});
Другие вопросы по тегам