有没有办法以编程方式分享谷歌文档?

时间:2012-07-06 17:27:19

标签: google-docs google-apps-script

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

1 个答案:

答案 0 :(得分: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);
          }
}

我首先使用'editor'作为变量名,现在改为'观察者'以避免混淆。

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

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

示例:

function sharebyFolder(){
    var file = DocsList.getFileById('docId');
    var folder = DocsList.getFolderById('shared folder Id');
    file.addToFolder(folder)
      }