Google Sheets Add-on error: authorisation is required to perform that action
Google Sheets Add-on error: authorisation is required to perform that action
我有一个插件在我的 domain/company 中工作了多年,直到 Google 决定改变一些东西。
我重新发布了它,现在我可以 运行 它了,但公司里没有其他人可以。
他们收到的错误是:
"Authorisation is required to perform that action".
我无法准确指出错误的位置,因为 GCP 日志只告诉我功能而不是行,但似乎大多数时候显示边栏时都会出现错误。
我不使用任何类型的 API,只是 GAS 但“以防万一”我在 OAuth 同意屏幕中添加了这些范围:.../auth/script.container.ui and .../auth/spreadsheets
.
在 Google Workspace Marketplace SDK OAuth 范围中,我刚刚保留了默认值。
我还尝试添加 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"
]
我还能尝试什么?
更新:根据评论中的要求,这里是有问题的代码:
// 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:
根据评论中的要求,这里是我发布附加组件的过程:
我创建了一个 google 云项目,然后配置了 OAuth 同意屏幕(与 appsscript.json 具有相同的范围 - 见上面的列表),然后在 Google Workspace Marketplace SDK 中我设置了脚本 ID和部署编号以及相同的范围和发布。
事实证明附加组件很好!
只是this 4 years old bug that Google refuses to fix
如果用户使用多个帐户登录,将使用默认帐户。
如果默认帐户是非域并且附加组件被限制在域中,则附加组件将无法授权。
我有一个插件在我的 domain/company 中工作了多年,直到 Google 决定改变一些东西。 我重新发布了它,现在我可以 运行 它了,但公司里没有其他人可以。 他们收到的错误是:
"Authorisation is required to perform that action".
我无法准确指出错误的位置,因为 GCP 日志只告诉我功能而不是行,但似乎大多数时候显示边栏时都会出现错误。
我不使用任何类型的 API,只是 GAS 但“以防万一”我在 OAuth 同意屏幕中添加了这些范围:.../auth/script.container.ui and .../auth/spreadsheets
.
在 Google Workspace Marketplace SDK OAuth 范围中,我刚刚保留了默认值。
我还尝试添加 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"
]
我还能尝试什么?
更新:根据评论中的要求,这里是有问题的代码:
// 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: 根据评论中的要求,这里是我发布附加组件的过程: 我创建了一个 google 云项目,然后配置了 OAuth 同意屏幕(与 appsscript.json 具有相同的范围 - 见上面的列表),然后在 Google Workspace Marketplace SDK 中我设置了脚本 ID和部署编号以及相同的范围和发布。
事实证明附加组件很好!
只是this 4 years old bug that Google refuses to fix 如果用户使用多个帐户登录,将使用默认帐户。
如果默认帐户是非域并且附加组件被限制在域中,则附加组件将无法授权。