谷歌应用脚本用户必须在自己的驱动器上授予权限才能在应用服务器的驱动器中打开电子表格?



嗨,谷歌电子表格脚本,

脚本发布者的驱动器中有电子表格。脚本执行openByURL。

问题:Google允许用户授权脚本更新用户驱动器中的所有电子表格。

那不是剧本的地方!用户为什么要允许发布者访问用户驱动器中的所有电子表格?

我的要求是:用户和脚本发布者是陌生人。脚本用户拒绝向脚本发布者公开用户的驱动器。

Publisher希望在隐藏的脚本函数(scriptnames_)中保持专有逻辑不暴露

// Script-as-app template.
function doGet() {
var app = UiApp.createApplication();
url = "https://docs.google.com/spreadsheet/ccc?key=xxx_X'd_out_xxxxxxxxxxx&usp=sharing";
var doc = SpreadsheetApp.openByUrl(url);
var spreadsheet_link = app.createAnchor('<br><br> spreadsheet open ', doc.getUrl()).setId("<br>    <br>spreadsheet link");
app.add(spreadsheet_link);  
return app;
}

(是的,我知道我可以让出版商通过电子邮件向用户发送电子表格,但我仍然会遇到用户需要对出版商的脚本授予授权的问题,这仍然会导致谷歌请求脚本授权来修改用户驱动器上的所有电子表格。)

如果这是旧讨论的翻版,我深表歉意。我搜索了一下,没有发现它的措辞是这样的。谢谢

正如Serge所说

答案

允许访问驱动器中的电子表格并不意味着允许访问所有电子表格,只有用户与脚本发行商(或公开或"向任何有链接的人")共享的

我通过尝试访问用户GoogleDrive中的私人电子表格进行了测试,脚本在执行时确实出现了错误:

Couldn't open document with id 0Ak2222Ho-SXL222222222222222222: 
You do not have permissions to access the requested document.

我不知道如何将Serge在评论中所说的问题标记为已回答,所以我将把答案放在这里,希望这个问题能标记为已答复。感谢

最新更新