Google Data Studio 社区连接器:访问应用程序脚本中的 URL 参数

Google Data Studio Community Connector: Accessing URL Parameters in App Script

我正在关注 Row level filtering with Embedded dashboards tutorial to build a secure, multi-tenant dashboard using Data Studio as the reporting UI/backend (and Anvil 作为 Python 中的前端),目的是根据特定用户权限从 BigQuery table 中过滤数据。

我已经按照推荐成功完成了initial connector tutorial。到目前为止,我还成功完成了以下步骤 (1-4) :

  1. 在 Anvil 中构建用户身份验证并在 user table 中设置权限(JSON 包含允许每个用户查看的特定字段值)
  2. 构建机制以在 Anvil 中创建 access_token,基于用户和 unix 时间戳组合的十六进制 md5 哈希值,一小时到期
  3. 在 Anvil 中安全地设置和存储 app_secret 以验证入站请求
  4. 在 Anvil 中创建 API 端点,它验证 app_secret 并验证 access_token 和 returns JSON 包含 user_emailpermitted_accounts

现在我要构建自定义连接器,目的是构建流程的下一部分:

  1. 根据 this 部分
  2. 通过编码并将其包含在嵌入 URL 中将 access_token 传递到 Data Studio(报告将通过 iFrame 嵌入)
  3. 根据语句“这将用于从嵌入 URL 的参数中捕获令牌”,从应用脚本中的嵌入 URL 中提取 access_token。来自 this 部分
  4. 使用 App 脚本中的 app_secretaccess_token 命中 API 端点以验证并接收与 access_token IF 验证检查通过的 Anvil 关联的用户权限, 否则 return 适当的错误信息
  5. 根据用户权限构造查询并使用此 approach 从 BigQuery 获取数据 ...然后设置架构等...

但是,在到达此流程的第 6 步时,我需要从 URL 解析 access_tokenWrite the Connector Code 部分中包含的代码采用 token 作为用户输入的文本字段并且不从嵌入 URL 的参数中获取它(这对我来说没有意义,因为让用户不断地手动转置一个短暂的令牌似乎否定了这一点练习)。

我也无法在 API reference 中找到有关如何实现此目的的文档。

请问,有人知道如何从应用脚本社区连接器中的报告嵌入 URL 捕获参数吗?我认为可以从文档中获得:

getConfig() should return at least one config item. This will be used to capture a token from embed URL's parameters.

感谢您抽出宝贵时间!

一个。我假设 access_token 是您的 getConfig.

中的可覆盖配置参数

b。当您创建初始报告时,在数据源创建期间,您可以在 access_token 配置字段中输入任何值。但是,请选中 'Allow "access_token" to be modified in reports' 框。这意味着,报表查看者将能够覆盖此值,即使他们没有报表或数据源的编辑权限。

c。确认您的 setp #5 正在按照说明 here 传递 access_token.

的覆盖值

d。而已。现在,您在初始报告创建期间为 access_token 输入的值无关紧要。对于用户 X,您的门户传递值 hash(user, timestamp) 作为 access_token 的值。在连接器的 getData 函数中,request.configParams.access_token 将 return 该特定值。然后,您可以使用该值调用端点以取回用户身份。