奇怪的权限问题与在谷歌Apps脚本getOwner方法(Strange permission iss

2019-10-17 15:21发布

当使用此行代码在谷歌Apps脚本

  var user = folders[n].getOwner().getEmail()

我得到一个错误,说我没有被授权执行这样的操作(您的版本可能会有所不同,我是来自意大利的翻译)。

是什么赋予了? 我只是检索的信息,如文件夹的所有者。


当脚本处理我自己的文件夹,错误不会出现,当它遇到不是我的文件夹的错误出现。 该问题是,这行代码是只为点滴出血它们是我的不是文件夹,以避免发行方式要能正确上升错误,像setTrashed 。 该脚本将查找空文件夹删除它们,但我不能删除文件夹,我当然不是所有者。 是的,我到谷歌Apps for Business的,这有一定的差异?

Answer 1:

没有任何警告specifc file.getOwner().getEmail()但对于堂课 。

在有限的特权执行(例如响应于的OnOpen或onEdit),我们只返回活跃用户的身份,如果两个用户和脚本所有者是相同的域的一部分。 这是为了保护消费者的用户,谁可能不希望他们的电子邮件地址暴露的隐私。

我有这个没有问题,在消费者账户。

下面的函数是从摘录一个要点我张贴先前的问题 。 它包装调用.getEmail()getUserLoginId()如果你喜欢)在try ... catch块,所以它避免了用户跨越应用程序域错误。

function getFileInfo (file,fileType) {
  var fileInfo = {
    id: file.getId(),
    name: file.getName(), 
    size: file.getSize(),
    type: (fileType == "file") ? docTypeToText_(file.getFileType()) : "folder",
    created: file.getDateCreated(),
    description: file.getDescription(),
    owner: file.getOwner()
  }
  try {
    fileInfo.owner = file.getOwner().getEmail()//.getUserLoginId()
  } catch(e)
  {
    // Possible permission problem
    fileInfo.owner = "unknown";
  }
  return fileInfo;
}

更新:由于这是第一次公布,事情已经改变。 现在我的消费者帐户试图访问时遇到上述错误getOwner()从另一个帐户共享的文件。 (2013年3月3日)



文章来源: Strange permission issue with getOwner method in Google Apps Script