【问题标题】:Google Apps Script ScriptDb permissions issueGoogle Apps Script ScriptDb 权限问题
【发布时间】:2013-06-27 02:05:03
【问题描述】:

我在尝试在 Google Apps 脚本中查询资源文件的 ScriptDb 时遇到问题。我创建了一个脚本文件(file1),将其作为资源添加到另一个脚本文件(file2)。我从 file2 调用 file1 以返回其 ScriptDb 的句柄。这工作正常。然后我尝试查询 ScriptDb,但返回了权限错误。

这两个文件都属于同一用户并在同一 google 环境中

见下面的代码:

文件 1:

function getMyDb() {  
    return ScriptDb.getMyDb;  
} 

文件 2(参考文件 1):

function getDataFromFile1() {  
    var db = file1.getMyDb(); // This works  
    var result = db.query({..............}); // This results in a permissions error!  
}

我不明白为什么我可以访问 file1 并取回 ScriptDb 的句柄,但由于权限问题而无法查询它。

我曾尝试强制 file1 要求重新授权,但尚未成功。我尝试添加一个新函数并运行它,因此我们将不胜感激地收到任何建议。

提前致谢 克里斯

【问题讨论】:

  • 这应该可以正常工作。我无法重现此问题。 file1 上的授权与此无关。您应该检查 file2 上的授权。你是如何运行它的?从脚本编辑器?也许您的查询有问题,您是否尝试过更简单的查询?你能和我们分享它的代码吗?
  • 您好,Henrique,感谢您的回复。我同意这应该可以正常工作,这就是为什么我有点难过。我正在尝试使用调试器通过另一种调用 getDataFromFile1() 的方法(在 file2 中)从脚本编辑器运行该函数,我尝试了一个更简单的查询,但无济于事。这是我的代码文件中失败的实际查询: var result = db.query({ silo: "config", area: "settings", property : "custAdminName"});这是 ScriptDb 记录:{ "area": "settings", "value": "Alfred", "property": "custAdminName", "silo": "config" } 谢谢 Chris
  • 抱歉,没有意识到所有的格式都会消失
  • var result = db.query({ silo: "config", area: "settings", property : "custAdminName"});
  • { "area": "settings", "value": "Alfred", "property": "custAdminName", "silo": "config" }

标签: permissions google-apps-script


【解决方案1】:

file1/line2 中似乎有错误。它说“返回 ScriptDb.getMyDb;”但它应该说“return ScriptDb.getMyDb();”

如果您省略 ()s,那么当您将 file1 作为库调用时,file1.getMyDb() 将返回一个您存储在 var db 中的函数。然后 var result = db.query({.................}) 行会导致错误,因为函数中没有“查询”方法。

这是导致您的错误的原因吗?

【讨论】:

    【解决方案2】:

    我已经弄清楚了问题所在,这是我对授权的误解。我是从文件权限的角度考虑的,而实际上这个问题是我的代码没有被授权运行 DbScript 服务。当我的代码调用不同的文件并接收回指向 ScriptDb 数据库的指针时,它没有使用 ScriptDb 服务,因此当它调用 db.query() 时,它会调用未经授权的 ScriptDb 服务。

    为了解决这个问题,我只需要创建一个虚拟函数并进行 ScriptDb.getMyDb() 调用,这会触发服务的授权。然后代码运行良好。

    感谢您的意见。 克里斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 2018-10-20
      • 1970-01-01
      相关资源
      最近更新 更多