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