我有一个非常具体的情况,我正在使用谷歌应用程序脚本构建服务(插件),我想尝试一些功能,但我一直在努力文件。
我将构建和部署一个webapp,任何人都可以访问,这是一个简单的表单。我希望这个表格在google工作表上写一行,交易是我不知道工作表ID ,我正在建立一个加载项将允许任何工作表访问webapp 并重新发布帖子或获取变量并使用它们。
有什么想法吗?
答案 0 :(得分:1)
谢谢Sandy我有同样的想法;
首先,我构建了一个附加组件,允许WebApp写入工作表,并提供带有工作表ID的GET变量。
function useWebApp() {
var sheetID = SpreadsheetApp.getActiveSpreadsheet().getId();
var openFile = DriveApp.getFileById(sheetID)
openFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.EDIT);
SpreadsheetApp.getUi().alert("https:// [WEBAPPLINK] /exec?sheet="+sheetID );
}
其次,正如所建议的那样,我构建WebApp并使用提供的HTTP GET变量在工作表上进行写入。
function doGet(e) {
var app = UiApp.createApplication();
var targetSheet = e.parameter.sheet;
var label = app.createLabel('Parameter value sheet:'+e.parameter.sheet;
app.add(label);
//insertSheetLine(e.parameter.sheet); //test to insert rows directly
PropertiesService.getScriptProperties().setProperty('targetSheet', e.parameter.sheet); //define a global variable in the script
return HtmlService.createHtmlOutputFromFile('index')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
这样,只要发布webapp以模仿所有者,就可以避免OAuth交易。考虑到这一点,任何人都可以使用它并在没有注册的表格中书写。 主要想法是发布一个可安装的useWebApp方法的附加组件,以便它可以在任何工作表上使用。
再次感谢桑迪