【问题标题】:Any way to share google docs programmatically?任何方式以编程方式共享谷歌文档?
【发布时间】:2012-07-06 17:27:19
【问题描述】:

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

【问题讨论】:

    标签: google-docs google-apps-script


    【解决方案1】:

    您可以使用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”作为变量名,现在改为“viewers”以避免混淆。

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

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

    例子:

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

    【讨论】:

    • 谢谢,我会尝试他们两个,看看哪个更好。编辑:我会尝试第二个选项,因为它看起来更好。
    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多