【问题标题】:Google Docs Add-on only works for one accountGoogle Docs Add-on 仅适用于一个帐户
【发布时间】:2018-06-10 17:44:20
【问题描述】:

我已经部署了一个 Google Docs 插件,但如果浏览器中有多个帐户,它只适用于一个帐户。具体来说,它仅适用于(默认)Google 帐户。其他帐号随机显示以下错误之一

ScriptError: Action not allowed or

ScriptError:需要授权才能执行该操作

应该做些什么来避免这种情况,以便任何帐户都可以使用该插件?

【问题讨论】:

  • 该插件是否适用于所有帐户?运行未经批准的代码将是一个巨大的安全风险。 Apps 脚本中存在一个错误,导致 Apps 脚本代码不“知道”如果用户登录到多个帐户时使用哪个登录帐户。如果默认帐户是授予授权的帐户,那么一切正常。但是如果授权插件的账户不是默认账户,那么它就不能工作并且你会得到错误。它在Issue Tracker 某处。

标签: google-apps-script google-docs


【解决方案1】:

它与authorization mode 有关。因此浏览器中的其他帐户没有为加载项提供适当的权限。您需要编辑onOpen(e) 以处理用户尚未授权加载项的授权模式。请参见下面的示例:

 function onOpen(e) {
   var menu = SpreadsheetApp.getUi().createAddonMenu();
   if (e && e.authMode == ScriptApp.AuthMode.NONE) {
     // Add a normal menu item (works in all authorization modes).
     menu.addItem('Start workflow', 'startWorkflow');
   } else {
     // Add a menu item based on properties (doesn't work in AuthMode.NONE).
     var properties = PropertiesService.getDocumentProperties();
     var workflowStarted = properties.getProperty('workflowStarted');
     if (workflowStarted) {
       menu.addItem('Check workflow status', 'checkWorkflow');
     } else {
       menu.addItem('Start workflow', 'startWorkflow');
     }
     // Record analytics.
     UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
   }
   menu.addToUi();
 }

使用下面的代码,“默认”帐户将看到“检查工作流程状态”选项,但其他帐户只会看到“启动工作流程”。请注意,您的问题与浏览器中的多个帐户无关,而是与同一文档中的多个用户有关。

【讨论】:

  • 我根据您的回答检查了插件的行为。这就是我发现的。 1] 插件仅适用于默认帐户和默认帐户在同一浏览器中拥有的文档。 2] 在任何情况下,默认帐户以外的帐户都可以使用插件(除非有默认帐户与其他帐户共享的文档) 3] 其他帐户可以在隐身模式下使用插件。是否有任何方法或解决方法可以使所有附加帐户的环境都不同?因为可以在同一个浏览器上使用不同的帐户编写文档,那为什么不加载呢?
  • 我认为您发现的内容对于同一浏览器帐户中的多次登录有效。您可以创建多个浏览器帐户,而不是在同一个“浏览器帐户”中登录多个帐户,每个 Google 帐户一个:support.google.com/chrome/answer/2364824。哦,您实际上在同一个 Google 帐户下有多个“别名”或brand accounts?那么你发现的是有效的。否则,该插件应该适用于不同的帐户。
  • 创建不同的“浏览器帐户(配置文件)”可以解决问题。我希望它不应该这样,但现在还可以。谢谢!
【解决方案2】:

按照 cmets 对 user8214858 的回答,这不是正确的答案,而 OP 所描述的ScriptError 的真正原因是 Google Apps 脚本上的一个已知问题,多个 Google 帐户在同一浏览器会话中同时连接。

Google 问题跟踪器中问题页面的链接:
https://issuetracker.google.com/issues/69270374

在修复之前,解决方法是断开与所有帐户的连接,但运行插件所需的帐户除外,或进入隐身模式。

【讨论】:

  • 这是一个非常烦人的错误,我们的用户对此抱怨很多。
猜你喜欢
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 2022-01-04
  • 2021-06-20
  • 1970-01-01
  • 2020-07-10
相关资源
最近更新 更多