Я делаю это рекурсивно, обратите внимание, что у меня есть обратный вызов, который собирает файлы - я использую Redux с React, поэтому он просто отправляет действие, которое добавляет группу файлов в состояние каждый раз, когда метод получает больше файлов:
function getAllFiles(bearerToken, pageToken = undefined, q = undefined,
callback = (files) => console.log('No callback provided',
files),
onComplete = () => console.log('No onComplete provided'),
) {
axios.get('https://www.googleapis.com/drive/v3/files', {
params: {
corpora: 'user',
fields: 'files(id,name,size,mimeType,parents,webViewLink,trashed),nextPageToken',
// q: 'mimeType = \'application/vnd.google-apps.folder\'',
q: q,
pageSize: 1000,
pageToken: pageToken,
},
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer ' + bearerToken,
},
}).then((result) => {
callback(result.data.files);
if (result.data.nextPageToken) {
getAllFiles(bearerToken, result.data.nextPageToken, q, callback,
onComplete);
} else {
onComplete();
}
}).catch((error) => {
console.error('Error folders result', error);
});
}
Это из кода моей "Панели диска" на https://drivedashboard.saisols.com/