【问题标题】:Google Sheets Add-on error: authorisation is required to perform that actionGoogle 表格插件错误:需要授权才能执行该操作
【发布时间】: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


【解决方案1】:

事实证明插件很好!

只是this 4 years old bug that Google refuses to fix 如果用户使用多个帐户登录,则将使用默认帐户。

如果默认帐户是非域并且插件被限制在一个域中,则插件将无法授权。

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多