Google Drive REST API - почему поле запроса "ifiedDate"не возвращает результатов при перечислении дочерних элементов?

В своем проекте Java я использую Google Drive API для загрузки файлов с публичного диска.

Когда я пытаюсь перечислить дочерние элементы определенной папки в соответствии с некоторыми критериями, все работает так, как ожидалось. Тем не менее, есть это поле ifiedDate, которое не возвращает никаких результатов. Никаких ошибок не возникает, но список пуст, несмотря на написание вполне разумного предложения поиска (должно быть довольно много файлов).

Это мой код:

    Drive.Children.List firstRequest = service.children().list(folderId)
            .setQ("mimeType='application/pdf' and modifiedDate <= '2016-03-07T19:17:54.759Z'" );
    do {
        ChildList result = firstRequest.execute();
        for(ChildReference child: result.getItems()) {
            File file = service.files().get(child.getId()).execute();
            System.out.printf("Found file: %s (%s): %s\n",
                    file.getTitle(), file.getId(), file.getCreatedDate());
        }
        firstRequest.setPageToken(result.getNextPageToken());
    } while (firstRequest.getPageToken() != null &&
            firstRequest.getPageToken().length() > 0);

Используя Try It! Функция на странице разработчиков Google тот же запрос возвращает результаты, как и ожидалось. HTTP-запрос там следующий:

введите описание изображения здесь

И это ответ: введите описание изображения здесь

Когда я запускаю свое Java-приложение, это URL-адрес запроса:

GET  https://www.googleapis.com/drive/v2/files/0B3Y7hLeztp6SUVBCbnpRN0ZQVVU/children?q=mimeType%3D'application/pdf'%20and%20modifiedDate%20%3C%3D%20'2016-03-07T19:17:54.759Z'

Ответ HTTP следующий:

kind: drive#childList
etag: "TEeH8_qJkyJwjzQ-F4FJRbfwWxI/vyGp6PvFo4RvsFtPoIWeCReyIC8"
selfLink: https://www.googleapis.com/drive/v2/files/0B3Y7hLeztp6SUVBCbnpRN0ZQVVU/children?q=mimeType%3D'application/pdf'+and+modifiedDate+%3C%3D+'2016-03-07T19:17:54.759Z'
items: [


]

Запросы идентичны. Но ответов нет... В чем может быть причина?

РЕДАКТИРОВАТЬ

Я должен упомянуть, что я пытался использовать служебную учетную запись. Это будет настольное приложение, поэтому я не обязательно хотел, чтобы пользователи признавали использование API Google и были вынуждены создавать адрес Gmail в случае, если у них его нет, и авторизовывать запросы. Более того, приложение получает доступ только к общедоступным ресурсам диска и не нуждается в информации о клиенте.

Тем не менее, ключ учетной записи службы вызвал мою текущую проблему, в то время как использование идентификатора клиента OAuth позволяет мне получить желаемые результаты.

Какой рекомендуемый способ справиться с этим сценарием? Или, может быть, я все неправильно понял в рамках OAuth2?

0 ответов

Другие вопросы по тегам