Как можно комбинировать файл files.list с нумерацией страниц с партией? - PullRequest
0 голосов
/ 14 января 2019

У меня есть пакетный запрос gapi (v2) для файлов в папке 'x'. Эта папка может иметь разбитый на страницы список содержимого.

Я попытался рекурсивно вызвать api files.list (как показано в документах gapi v2) со значением pageToken, равным nextPageToken, но которое возвращает «Invalid Token».

var batch = gapi.client.newBatch();
var request = gapi.client.drive.files.list();
batch.add(request, {'id': 'mySearch');

batch.then(handleResponse);

function handleResponse(resp) {
    // gets the first set of 100 files fine
    console.log(resp.result['mySearch'].result.items); // prints array of 100

    // handle nextPageToken here <- this is what I want to do
}

Мне нужен массив всех, скажем, 435, элементов в папке 'x'. Как я могу это сделать?

1 Ответ

0 голосов
/ 15 января 2019

В документации указано, что следующие причины вероятной ошибки " Invalid Token ":

Приложения Google Диска должны учитывать API, возвращающий HTTP 401 или HTTP 403 ответ при вызове Drive API. Эти ошибки могут указать любое из:

  • Срок действия токена.
  • Отзыв токена. Это приведет к тому, что токен доступа и токен обновления перестанут работать.
  • Токен не авторизован для необходимых областей.
  • Запрос не авторизован правильно с протоколом OAuth 2.0.

Срок действия токена можно обработать, обновив учетные данные. Если это сбой вызова с ошибкой «неверные учетные данные», возможно, проблема что пользователь отозвал доступ. За аннулированный доступ и все вопросы кроме истечения срока действия токена, лучшее средство - перенаправить пользователя через диалоговое окно OAuth для повторного предоставления доступа.

Затем вы можете проверить эту ссылку для реализации метода Files: list, чтобы вы руководствовались соответствующим образом.

Чтобы воспользоваться преимуществами API Good Drive, вы можете перенести на Drive API v3.

Различия между Drive API v3 и v2 в основном связаны с имена полей и удаление дублирующих функций.

...