3

我有一个程序可以从融合表中获取数据,将其放入谷歌文档中(使用我制作的模板),使其成为 pdf,然后显示指向它的链接(指向 pdf)。我的问题是它适用于我的帐户,但如果其他人试图点击它,他们会不断收到“404 Not Found”错误。我的猜测是出现错误是因为我是唯一允许查看文件的人。我的问题是:有没有办法以编程方式与组织中的每个人共享文件,或者有其他方法吗?

4

1 回答 1

4

您可以使用DocsList.addViewers(viewersEmails[])

这是一个示例,它将查看器列表作为参数,将它们添加为查看器并发送带有链接的电子邮件:

function addviewers(viewers) { // pass emails as a string in CSV
  var viewerssArray = viewers.replace(/, /g,",").split(",");// the 'replace' is there to remove any spaces that could be in the string
  Logger.log(viewersArray.length+'  :  '+viewersArray);
  var file = DocsList.getFileById('your doc ID').addViewers(viewersArray);
  var docurl=file.getUrl();    
      for (nn=0;nn<viewersArray.length;++nn){
        MailApp.sendEmail(viewersArray[nn], 'your document', docurl);
          }
}

我最初使用“编辑器”作为变量名,现在改为“查看器”以避免混淆。

如果您确实需要将域中的每个人都包括在内以获取访问权限,我想最好的解决方案是创建一个包含所有用户的组以简化流程。

编辑:可能有一个更简单的解决方案是将文件移动到共享文件夹中:文件夹中的所有项目都具有与文件夹本身相同的共享参数。

例子 :

function sharebyFolder(){
    var file = DocsList.getFileById('docId');
    var folder = DocsList.getFolderById('shared folder Id');
    file.addToFolder(folder)
      }    
于 2012-07-06T17:55:11.370 回答