Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google Data Studio Community Connector-如何跨多个查看器向第三方端点访问共享凭据?_Google Apps Script_Google Data Studio - Fatal编程技术网

Google apps script Google Data Studio Community Connector-如何跨多个查看器向第三方端点访问共享凭据?

Google apps script Google Data Studio Community Connector-如何跨多个查看器向第三方端点访问共享凭据?,google-apps-script,google-data-studio,Google Apps Script,Google Data Studio,我正在为Google Data Studio开发一个定制的社区连接器,其潜在目标是为其他用户发布它 基本上,它连接到外部REST端点,根据用户在数据源GUI中配置的内容请求数据,接收数据并对其进行转换,以便Google data Studio能够处理数据。 连接器正在使用AuthType用户密码。因此,当Google用户从该连接器创建数据源时,他将被要求提供一个用户/密码组合,用于在该外部REST端点进行身份验证。看起来有点像这样: 然而,考虑这种情况: Google用户A从连接器创建数据源

我正在为Google Data Studio开发一个定制的社区连接器,其潜在目标是为其他用户发布它

基本上,它连接到外部REST端点,根据用户在数据源GUI中配置的内容请求数据,接收数据并对其进行转换,以便Google data Studio能够处理数据。
连接器正在使用AuthType
用户密码
。因此,当Google用户从该连接器创建数据源时,他将被要求提供一个用户/密码组合,用于在该外部REST端点进行身份验证。看起来有点像这样:

然而,考虑这种情况:

Google用户A从连接器创建数据源

  • 他正在配置该数据源,以便使用用户名用户和密码对外部服务进行身份验证
  • 他使用该数据源创建报告
  • 然后是另一份报告
  • 然后可能是另一个
  • 他与其他人共享其中一份报告
  • 现在,谷歌用户B收到一封电子邮件,告诉他可以查看一份报告。他点击链接。立即调用
    getData()
    。但可能不是,我不太明白缓存是如何工作的。也许他可以编辑这份报告。他也是。在B对该报表进行重大更改后,仍将调用
    getData()
    。但是,数据源不知道应该使用哪些凭据对外部REST端点进行身份验证

    我用各种各样的s和s来存储这些信息。我了解到缓存和属性基本上是相同的,唯一的例外是缓存在过期之前的寿命有限

    • /总是空的,因为据我所知,它不打算从连接器使用
    • /在连接器的所有实例中共享,就像在使用该连接器的所有数据源中一样。这太受限制了,因为用户可能希望为该外部服务的RESTAPI的多个帐户使用该连接器
    • /太有限了,因为它对于Google用户A和Google用户B是不同的
    所以问题是: 我应该在何处存储用户和密码以验证外部REST服务的连接器实例?

    我的灵感来源于此,这取决于脚本在其权限下运行的用户

    在与我共享了一份报告的第二个Google帐户进行了一些测试之后,我得出的结论是,根据报告创建者选择的凭据访问权限,该/的行为有所不同。这有一个指南

    基本上,如果您选择默认的“所有者凭据访问”,则创建者的UserProperties/UserCache将与其他所有查看器共享。而如果选择“查看器凭据访问”,则使用当前查看器的UserProperties/UserCache

    这意味着,如果您将凭据存储在创建者的UserProperties中,我认为,它们将与每个查看器共享,因为查看器使用的是创建者的UserProperties,而不是他们自己的UserProperties