Google Data Studio社区连接器如何在App Script中获取嵌入URL参数
实现步骤
1. 调整getConfig()配置,声明可从URL捕获的参数
在你的社区连接器getConfig()方法中,添加对应access_token的配置项,开启URL参数捕获能力,配置时注意两个核心属性:
- 配置项的
key值与你后续传递的参数名保持一致 - 显式设置
isDynamic: true,允许该配置项从嵌入URL参数中取值
不需要用户手动输入的话,可以设置type: 'TEXT'同时加hidden: true隐藏字段。
示例代码:
function getConfig(request) { var config = cc.getConfig(); // 其他原有配置项保留即可 // 可选:添加提示信息,避免用户疑惑 config.newInfo() .setId('access_token_info') .setText('系统自动获取访问权限,无需手动填写'); // 核心配置:声明access_token参数 config.newTextInput() .setId('access_token') .setName('访问令牌') .setIsDynamic(true) .setHidden(true); return config.build(); }
2. 嵌入URL的参数拼接规则
你在Anvil端拼接Data Studio(现名Looker Studio)嵌入URL时,参数名需要添加ds.config.前缀,和上述配置项的key对应,格式如下:https://lookerstudio.google.com/embed/reporting/你的报表ID?ds.config.access_token=你生成的令牌值
注意access_token需要做URL编码,避免特殊字符导致解析失败。
3. 在连接器逻辑中提取参数值
在getData()或者其他需要校验权限的逻辑中,直接从request对象的configParams字段读取捕获到的令牌即可,示例:
function getData(request) { // 提取从URL捕获的access_token const accessToken = request.configParams.access_token; // app_secret请存储在App Script脚本属性中,不要硬编码 const appSecret = PropertiesService.getScriptProperties().getProperty('APP_SECRET'); // 令牌不存在直接抛出错误 if (!accessToken) { cc.newUserError() .setText('无效的访问权限,请刷新页面重试') .throwException(); } // 后续执行原有逻辑:调用Anvil API校验令牌、获取权限、构造BigQuery查询即可 }
注意事项
- 敏感配置如
app_secret请存储在App Script的「项目属性 - 脚本属性」中,不要硬编码在代码里,避免泄露 - 如果令牌过期,连接器抛出错误后,你可以在Anvil前端监听iFrame加载状态,重新生成令牌刷新嵌入URL即可
内容的提问来源于stack exchange,提问作者JB_80
相关产品推荐
相关产品推荐

