【发布时间】:2021-08-25 20:42:40
【问题描述】:
我有一个插件在我的域/公司内工作了多年,直到 Google 决定改变一些东西。 我重新发布了它,现在我可以运行它,但公司里没有其他人可以运行它。 他们收到的错误是:
"Authorisation is required to perform that action".
我无法确定错误的确切位置,因为 GCP 日志只告诉我函数而不是行,但似乎大多数时候在显示侧边栏时会出现错误。
我不使用任何类型的 API,仅使用 GAS,但“以防万一”我在 OAuth 同意屏幕中添加了这些范围:.../auth/script.container.ui and .../auth/spreadsheets。
在 Google Workspace Marketplace SDK OAuth Scopes 中,我刚刚保留了默认值。
我还尝试在 appscript.json 中添加这个(在顶层):
"oauthScopes": [
"https://www.googleapis.com/auth/script.container.ui",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/script.scriptapp",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/userinfo.email"
]
我还能尝试什么?
更新:根据 cmets 中的要求,这是有问题的代码:
// clientside
google.script.run.
withSuccessHandler()
.withFailureHandler(failureHandler) // failureHandler gets called
.aServerFunc()
//serverside
function aServerFunc(){
Logger.log('REACHED') // NO REACHED APPEARS IN CLOUD LOGS !
var docProp = PropertiesService.getDocumentProperties();
return docProp.getProperty(key)
}
所以我想问题出在别人身上,但我可以在插件中运行 google.script.run!
更新 2: 我已经删除了 PropertiesService 调用,所以它只是服务器上的一个空白函数。所以很明显,除了我之外,没有人可以运行 google.scripts.run。
更新 3: 根据 cmets 的要求,这是我发布插件的过程: 我创建了一个谷歌云项目,然后配置了 OAuth 同意屏幕(与 appsscript.json 具有相同的范围 - 参见上面的列表),然后在 Google Workspace Marketplace SDK 中我设置了脚本 ID 和部署编号以及相同的范围并发布。
【问题讨论】:
-
您可以分享您的示例代码吗?
-
您可能还想检查一下post 是否有帮助
-
我现在添加了一些代码。
-
您的附加代码中是否存在简单触发器?如果是,则需要使用可安装触发器进行身份验证
-
我只有一个 onEdit,它只是添加了菜单,它可以工作(这就是我的用户启动插件的方式)
标签: google-sheets google-cloud-platform add-on