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

时间:2018-10-18 12:26:28

标签: google-apps-script google-data-studio

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

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

有什么可能吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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