2016-02-26 5 views
2

Я пытаюсь показать это как веб-приложение. Он возвращает только 1 файл на сайте. Журналы показывают 50+ файлов. Почему htmloutput не показывает все файлы, подобные журналам. Любая помощь была бы потрясающей.Показать список всех файлов Google Диска на сайте Google

function doGet(e) { 
    var query = 'fullText contains "Printers"' ; 
    var folders, pageToken; 
    do { 
    folders = Drive.Files.list({ 
     q: query, 
     maxResults: 100, 
     pageToken: pageToken 
    }); 

    if (folders.items && folders.items.length > 0) { 
     for (var i = 0; i < folders.items.length; i++) { 
     var folder = folders.items[i]; 

     Logger.log('%s (ID: %s)', folder.title, folder.id); 
     } 
    } else { 
    } 
    var Output3 = folder.id; 
    var output = HtmlService.createHtmlOutput(Output3); 
    pageToken = folders.nextPageToken; 
    } while (pageToken); 

    return output 
} 

ответ

1

Каждый раз, когда ваши for итерацию цикла, это перезапись предыдущего содержимого.

var Output3 = folder.id; 

Вы должны были бы использовать что-то вроде:

var Output3 = "";//define this outside the `for` loop 
Output3 = Output3 + folder.id; 

Вот переделки вашего полного кода:

function doGet() { 
    var query = 'fullText contains "Printers"' ; 
    var folders, folder, pageToken, foldersLngth = 0, theItems, output=""; 

    do { 
    folders = Drive.Files.list({ 
    q: query, 
    maxResults: 100, 
    pageToken: pageToken 
    }); 

    foldersLngth = folders.items.length; 
    theItems = folders.items; 

    if (theItems && foldersLngth > 0) { 

    for (var i=0; i < foldersLngth; i++) { 
     folder = folders.items[i]; 
     Logger.log('%s (ID: %s)', folder.title, folder.id); 
     output = output + folder.title + ", " + folder.id; 
    }; 
    }; 

    //var Output3 = folder.id; 
    //HtmlService.createHtmlOutput(Output3); 
    pageToken = folders.nextPageToken; 
    } while (pageToken); 

    return HtmlService.createHtmlOutput(output); 
}; 
+0

Высоких. Оно работает. спасибо за помощь –