Google表格允许访问网络应用

时间:2016-03-24 17:58:14

标签: google-apps-script

我有一个非常具体的情况,我正在使用谷歌应用程序脚本构建服务(插件),我想尝试一些功能,但我一直在努力文件。

我将构建和部署一个webapp,任何人都可以访问,这是一个简单的表单。我希望这个表格在google工作表上写一行,交易是我不知道工作表ID ,我正在建立一个加载项将允许任何工作表访问webapp 并重新发布帖子或获取变量并使用它们。

有什么想法吗?

1 个答案:

答案 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方法的附加组件,以便它可以在任何工作表上使用。

再次感谢桑迪