2017-02-07 3 views
0

Я пытаюсь реализовать следующий код на своем сайте Google, поэтому я могу искать файлы на своем диске Google, введя любые параметры в панель поиска. Но я получаюПоиск файлов в Google Диске

"TypeError: Cannot read property "parameter" from undefined. (line 2, file "Search")"

Ошибка

Ошибка при попытке запустить ее в компиляторе Google скрипта. Я знаю, что эта ошибка означает, что параметр не установлен ни на какое значение. Поэтому я попробовал тест с его внедрением на новую страницу сайта Google, но не получил результата поиска.

function doGet(e) { 
     var results = DriveApp.getFolderById('0B3xR7WfXrj7aQTc5NWNMOGtITGc').searchFiles('fullText contains "' + e.parameter.q + '"'); 
     var app = UiApp.createApplication(); 
     var panel = app.createVerticalPanel(); 
     while(results.hasNext()) { 
     var file = results.next(); 
     panel.add(app.createAnchor(file.getName(), file.getUrl())); 
     } 
     var scrollPanel = app.createScrollPanel(panel).setHeight(200); 
     app.add(scrollPanel); 
     return app; 
    } 

Спасибо!

+0

Могу ли я спросить вас о вашем методе «ПОЛУЧИТЬ»? – Tanaike

+0

GET используется здесь для выполнения запроса сервлетов HTTP – ebyrock

+0

Если теперь вы запустите этот скрипт в редакторе сценариев, произойдет ошибка. Потому что у него нет значения с помощью GET. Если вы хотите протестировать этот скрипт, вам нужно развернуть скрипт как веб-приложение. Вы можете проверить это здесь. https://developers.google.com/apps-script/guides/web После развертывания этого скрипта, если он не работает. Пожалуйста, подтвердите метод GET. – Tanaike

ответ

0

У меня это работает. Я узнал, что Google устарел UiApp() класс. Вместо этого мне пришлось использовать HTML-службу. Вот рабочий код:

function doGet(e) { 
    var results = DriveApp.getFolderById('youGoogleDriveId').searchFiles('fullText contains "' + e.parameter.q + '"'); 
    var output = HtmlService.createHtmlOutput('Results: <br /><br /><ul>'); 
    while (results.hasNext()) { 
    var file = results.next(); 
    output.append('<li><a href="' + file.getUrl() + '">' + file.getName() + '</a></li>'); 
    } 
    output.append('</ul>'); 
    return output; 
} 

Но я не получаю никакого результата на файлы, которые они находятся в подпапках. Я еще не понял этого, но делаю поиск по всем файлам в диске - даже в подпапках.

Смежные вопросы