例如,假设开发者 X 为其客户开发了一个 Web 应用。 客户使用自己的凭据登录该应用,并查看销售数据 不同商店。每个客户都可以访问一系列不同的商店。通过 开发者想要在应用中嵌入 Looker Studio 信息中心, 因此,当客户登录时 只会看到商店的销售数据 所有资源。此过程的执行应无需客户登录其 Google 账号。
所提解决方案需要开发者创建一个社区连接器,通过嵌入网址传递一个令牌,然后基于该令牌过滤数据。
要求
- 信息中心查看者将登录第三方应用。
- 应用应将唯一令牌传递给 Looker Studio 信息中心 嵌入网址该令牌可用于查询过滤器信息 或者对过滤器信息进行加密
- 社区连接器应该能够将该令牌转换为过滤器值。
限制
- 如果您是 G Suite 客户,并且您的管理员已停用共享功能 云端硬盘文件的“知道链接的任何人”后,您将无法共享 与组织外部用户共享报告。
解决方案
要实现该解决方案,请完成以下步骤。
在 Web 应用中生成用户令牌
为 Web 应用中的每个登录用户生成唯一的令牌。您将 在后续步骤中将此令牌传递给嵌入式信息中心。
您应该使用该令牌过滤相关数据。选项包括:
- 创建会返回过滤后的数据或用户信息的 API 端点 特定标记。
- 加密令牌中的用户信息,以便稍后解密 。
创建新的社区连接器
查看社区连接器的工作原理并完成 社区连接器 Codelab,以便开始使用。使用 用于创建连接器的本地开发工具,更快、更简便 开发过程。
编写连接器代码
getConfig()
应返回至少一个配置项。它将用于从嵌入网址的参数中捕获令牌。function getConfig(request) { var cc = DataStudioApp.createCommunityConnector(); var config = cc.getConfig(); config .newTextInput() .setId('token') .setName('Enter user token'); // TODO: Add additional config values if applicable for your connector config.setDateRangeRequired(false); config.setIsSteppedConfig(false); return config.build(); }
getData()
将有权通过request.configParams
对象。使用令牌提取过滤后的数据 过滤现有的已提取数据。
根据上面的示例,令牌为request.configParams.token
。在getData()
中,令牌会传递给 REST 用于获取商店 ID 列表的 API 端点。这些商店 ID 随后会用于 构建 SQL 查询来获取销售数据。var STORE_ID_API = 'https://www.example.com/api/storeid'; var QUERY_STRING_PREFIX = "SELECT StoreName, Sales from stores" function getData(request) { var token = request.configParams.token; var storeIds = getStoreIdList(token); var queryString = constructQueryString(storeIds); var fetchedData = fetchData(queryString); // rest of getData() implementation } function getStoreIdList(token) { var url = STORE_ID_API; var response = UrlFetchApp.fetch(url); var parsedResponse = JSON.parse(response); return parsedResponse.storeIds; } function constructQueryString(storeIds) { var storeIdString = storeIds.join(','); var queryString = QUERY_STRING_PREFIX + ' WHERE storeId in (' + storeIdString + ')'; return queryString; }
创建信息中心
- 了解对于连接器而言部署和版本的运作方式。
- 为连接器创建生产部署。
- 使用生产部署链接在 Looker Studio。
- 对于
token
配置参数: 允许报告查看者修改参数值。 - 与所选用户或“知道链接的任何人”共享信息中心。
- 为报告启用嵌入功能。
将信息中心嵌入您的平台
- 了解报告网址参数的工作原理。
- 使用网址参数将动态生成的令牌值传递至
嵌入式 Looker Studio 报告。
您的嵌入网址将如下所示:
`https://lookerstudio.google.com/embed/reporting/REPORT_ID/page/PAGE_ID?config=%7B%22ds0%22%3A%7B%22token%22%3A%22TOKEN_VALUE%22%7D%7D
建议
- 您应该创建一个短期令牌。
- 确保信息中心不会向使用 无效。