舉例來說,假設開發人員 X 為客戶提供網頁應用程式。客戶使用自己的憑證登入應用程式,即可查看不同商店的銷售資料。每個客戶可存取的商店清單都不同。開發人員想在應用程式中嵌入 Data Studio 資訊主頁,這樣一來,客戶登入時就只會看到自己有權存取的商店銷售資料。客戶不應需要登入 Google 帳戶,才能完成這項程序。
建議的解決方案需要開發人員建立社群連結器、透過嵌入網址傳遞權杖,然後根據權杖篩選資料。
需求條件
- 資訊主頁檢視者會登入第三方應用程式。
- 應用程式應透過嵌入網址,將專屬權杖傳遞至數據分析資訊主頁。這個權杖可用於查詢篩選器資訊,或將篩選器資訊加密。
- 社群連接器應能將權杖轉換為篩選器值。
限制
- 如果您是 G Suite 客戶,且管理員已停用「知道連結的任何人」共用雲端硬碟檔案的功能,您就無法與貴機構以外的使用者共用報表。
解決方案
請完成下列所有步驟,實作解決方案。
在網頁應用程式中產生使用者權杖
為網頁應用程式中每位登入的使用者產生專屬權杖。您會在後續步驟中將這個權杖傳遞至內嵌資訊主頁。
您應使用權杖篩選相關資料。選項包括:
- 建立 API 端點,針對特定權杖傳回經過篩選的資料或使用者資訊。
- 在權杖中加密使用者資訊,以便稍後在連接器中解密。
建立新的社群連接器
請先參閱「社群連結器的運作方式」,然後完成社群連結器程式碼研究室,即可開始使用。使用本機開發工具建立連接器,加快開發速度並簡化開發程序。
編寫連接器程式碼
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 API 端點,以取得商店 ID 清單。接著,系統會使用這些商店 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; }
建立資訊主頁
- 瞭解連接器的部署作業和版本運作方式。
- 為連接器建立正式版部署作業。
- 使用「正式部署」連結,在數據分析中建立資料來源和報表。
- 針對
token設定參數,允許報表檢視者修改參數值。 - 與所選使用者或「任何知道連結的使用者」共用資訊主頁。
- 啟用報表的嵌入功能。
在平台中嵌入資訊主頁
- 瞭解報表網址參數的運作方式。
- 使用網址參數,將動態產生的權杖值傳遞至內嵌的數據分析報表。
嵌入網址看起來會像這樣:
`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
建議
- 您應建立短期權杖。
- 確保資訊主頁不會洩漏任何資訊,且檢視時使用的權杖有效。