需要帮助为域用户授权Google表格脚本

时间:2015-09-30 15:10:57

标签: google-apps-script google-sheets

我已经创建了三个脚本(但我认为它们都是同一个应用程序的一部分?)作为我公司的Sheets插件(我们域中的所有用户)部署。我是我们帐户的管理员,并为所有域用户批准了该应用。

首先,用户点击一个按钮,提示他们正确命名当前Google表格的副本(付款申请表)并将其保存在我们驱动器上的正确文件夹中。然后他们打开这个新文件并在填写之后,工作表上的另一个按钮打开一个脚本,该文件将文件的所有权转移给负责批准请求的员工,并且仅向其他所有观众提供。该员工批准该请求,然后按下运行脚本的按钮以允许会计师编辑该文档。

脚本可以工作,但是后两个脚本每次运行时都要求授权(即使是从我这里)。我在Authorizing a Google Apps Script上看到了一个类似的问题,但我认为第一个答案仅适用于将脚本作为Web App运行的情况。我愿意这样做,但我也很难理解这个过程(我第一次写剧本)。感谢。

1

function saveAsSpreadsheet() {

  var sheet = SpreadsheetApp.getActive();
  var folder = DriveApp.getFolderById('XXXXXXXX');
  var ui = SpreadsheetApp.getUi();
  Browser.msgBox("Please rename document. Wait for prompts.");
  var fileName = Browser.inputBox("Rename file like this: YYYY.MM.DD Payee Name");
  DriveApp.getFileById(sheet.getId()).makeCopy(fileName, folder);
}

2

function setOwner() {

  var sheet = SpreadsheetApp.getActive();
  var file = DriveApp.getFileById(sheet.getId())
  var owner = file.getOwner().getEmail();
  file.setOwner("joe@ourdomain.com");
}

3

function setSharing () {

  var sheet = SpreadsheetApp.getActive();
  var file = DriveApp.getFileById(sheet.getId())
  var owner = file.getOwner().getEmail();
  var user = file.getEditors();
  if (user = "jill@ourdomain.com"){
  file.addEditor("jill@ourdomain.com")
  } else if (user = "sue@ourdomain.com"){
  file.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.VIEW);
  } else {
  file.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.VIEW);
}}

0 个答案:

没有答案