在 Datastudio 社区连接器的 getData 中获取当前用户

Get current user inside getData of Datastudio community connector

尝试开发一个 community connector for Datastudio,我想从我的 getData 函数中检索当前使用报告的用户(不是报告的创建者)。

当我登录Session.getEffectiveUser().getEmail()Session.getActiveUser().getEmail()时,它不是用户名。我尝试将身份验证模式设置为 NONE 或 OAUTH2:结果相同。

知道这是否可行吗?

如果数据源正在使用 Owner's credentials, Session.getEffectiveUser().getEmail() 将为您提供数据源所有者(即创建者)的电子邮件地址。如果其他人查看报告,您无法在连接器中获取他们的身份。

如果数据源正在使用 Viewer's credentials, Session.getEffectiveUser().getEmail() 将为您提供查看者的身份。但是,使用 查看者的凭据,查看者必须先授权连接器。否则查看者在查看仪表板时会看到错误。

这不是真正的答案,而是一种帮助解决此问题的方法。当您在数据源的用户帐户中检查范围授权时,我们可以看到 userinfo.email 范围已验证,很好。

如果您处于测试模式(例如此代码实验室中的第 13 步 https://codelabs.developers.google.com/codelabs/community-connectors),如果您在 console.log 中添加 Session.getEffectiveUser().getEmail() getData() 函数,您将获得用户电子邮件。 => 为此,当您处于测试模式时,您必须以只读方式与 link 的任何人共享脚本代码。 如果脚本未共享,您将不会收到电子邮件并在您尝试访问社区连接器时生成错误。

现在的问题是,一旦连接器发布,您是否仍需要与 link 的任何人公开共享您的文件。 我猜不是。