getActiveUser()不返回用户?

时间:2019-09-09 02:25:05

标签: google-apps-script google-apps-script-addon

我刚刚将插件首次发布到G Suite市场:D

(大约2周后,Google今天发布了我们的插件)

我注意到的第一件事是:很多错误 :(

尽管我非常仔细地用绑定文档测试了代码。

与以下代码行相关的错误:

Session.getActiveUser().getEmail()

尽管我对https://www.googleapis.com/auth/userinfo.email具有OAuth权限,但它始终返回一个空字符串。

我猜(但不能确定)我需要改用此功能:

Session.getEffectiveUser().getEmail()

我不确定,因为我已经更新了代码并向G Suite Marketplace提交了新版本,但Google尚未发布(也许是因为从Addon Store迁移到G Suite Marketplace仍然很不稳定)

那么您是否有在G Suite Marketplace上使用Addon处理此问题的经验?

我应该一直使用getEffectiveUser()而不是getActiveUser()吗?


编辑:

这是运行Session.getActiveUser()的代码的上下文:

  • 用户接受OAuth权限后
  • 出现侧边栏
  • 使用google.script.run.functionX...的客户端代码调用functionX(具有对Session.getActveUser()的调用)
  

根据本指南   https://developers.google.com/gsuite/add-ons/concepts/editor-auth-lifecycle#authorization_modes,   使用google.script.run时,AuthMode为FULL

1 个答案:

答案 0 :(得分:2)

正如我们在getActiveUser() documentation上所读到的,如果您无法访问用户信息,则会得到一个空白字符串。由于AuthMode在某些情况下会自动更改(如authorization modes documentation所述),因此我们建议对其进行记录,以检查其是否处于AuthMode.FULL或任何其他模式下。我们希望这对您有用。请不要犹豫,向我们提供更多信息以寻求进一步的帮助。