【发布时间】:2015-05-07 19:04:46
【问题描述】:
我创建了一个包含大量 Google Drive 文件夹的 Google 站点。 每当我使用 Google Sites 搜索功能进行搜索时,我只能找到属于 Google Site 的单词。因此搜索结果中不包含 Google Drive 文件夹。
不管怎样,I was looking on the web and I came across this piece of code:
function doGet(e) {
var results = DriveApp.getFolderById('File ID').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(800);
app.add(scrollPanel);
return app;
}
我可以使用 Google 站点中的 Google Search Appliance 启动并运行此脚本。 (链接:Google Site with changed Searchbutton. (script is embedded in page: zoeken ==> just add "/zoeken" to the url.) 但是,每次我进行搜索时,都会收到 TypeError。有没有人能够更正上面的脚本或知道一段代码可以让我从 Google 站点搜索 Google Drive 文件夹?任何帮助将不胜感激。
【问题讨论】:
-
收到 TypeError 后,进入脚本编辑器,在 VIEW 菜单下,选择 EXECUTION TRANSCRIPT。在日志的底部,查找说明脚本失败以及在哪一行的消息。如果您能找出代码在哪一行失败,那将有所帮助。
-
嗨,我将脚本实现为网络应用程序,并且摆脱了 TypeError... 但是,当我执行脚本时(通过搜索:'Blogger'on this site , 它显示了一个空白页面。这可能是非常愚蠢的事情,但我无法让它工作。
-
也许在你的代码中加入一些错误处理会有所帮助;像
try, catch块。 -
嗨,我不知道该怎么做... :-)
-
在
doGet(e)函数名中,括号内有e。那是获取一些数据。然后使用e.parameter.q检索数据。输入这行代码,就在顶部:Logger.log('e.parameter.q: ' + e.parameter.q)然后运行您的代码,进入脚本编辑器,使用 VIEW,菜单并选择 LOGS。希望那里会有一行告诉您使用e.parameter.q检索到的内容。评论它是什么。
标签: google-apps-script google-drive-api google-sites