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) :
- 在 Anvil 中构建用户身份验证并在
user
table 中设置权限(JSON 包含允许每个用户查看的特定字段值)
- 构建机制以在 Anvil 中创建
access_token
,基于用户和 unix 时间戳组合的十六进制 md5 哈希值,一小时到期
- 在 Anvil 中安全地设置和存储
app_secret
以验证入站请求
- 在 Anvil 中创建 API 端点,它验证
app_secret
并验证 access_token
和 returns JSON 包含 user_email
和 permitted_accounts
现在我要构建自定义连接器,目的是构建流程的下一部分:
- 根据 this 部分
通过编码并将其包含在嵌入 URL 中将 access_token
传递到 Data Studio(报告将通过 iFrame 嵌入)
- 根据语句“这将用于从嵌入 URL 的参数中捕获令牌”,从应用脚本中的嵌入 URL 中提取
access_token
。来自 this 部分
- 使用 App 脚本中的
app_secret
和 access_token
命中 API 端点以验证并接收与 access_token
IF 验证检查通过的 Anvil 关联的用户权限, 否则 return 适当的错误信息
- 根据用户权限构造查询并使用此 approach 从 BigQuery 获取数据
...然后设置架构等...
但是,在到达此流程的第 6 步时,我需要从 URL 解析 access_token
,Write 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 该特定值。然后,您可以使用该值调用端点以取回用户身份。
我正在关注 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) :
- 在 Anvil 中构建用户身份验证并在
user
table 中设置权限(JSON 包含允许每个用户查看的特定字段值) - 构建机制以在 Anvil 中创建
access_token
,基于用户和 unix 时间戳组合的十六进制 md5 哈希值,一小时到期 - 在 Anvil 中安全地设置和存储
app_secret
以验证入站请求 - 在 Anvil 中创建 API 端点,它验证
app_secret
并验证access_token
和 returns JSON 包含user_email
和permitted_accounts
现在我要构建自定义连接器,目的是构建流程的下一部分:
- 根据 this 部分 通过编码并将其包含在嵌入 URL 中将
- 根据语句“这将用于从嵌入 URL 的参数中捕获令牌”,从应用脚本中的嵌入 URL 中提取
access_token
。来自 this 部分 - 使用 App 脚本中的
app_secret
和access_token
命中 API 端点以验证并接收与access_token
IF 验证检查通过的 Anvil 关联的用户权限, 否则 return 适当的错误信息 - 根据用户权限构造查询并使用此 approach 从 BigQuery 获取数据 ...然后设置架构等...
access_token
传递到 Data Studio(报告将通过 iFrame 嵌入)
但是,在到达此流程的第 6 步时,我需要从 URL 解析 access_token
,Write 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 该特定值。然后,您可以使用该值调用端点以取回用户身份。