Nehmen wir an, Entwickler X hat eine Webanwendung für seine Kunden. Kunden melden sich mit ihren eigenen Anmeldedaten in der App an und können Verkaufsdaten für verschiedene Geschäfte aufrufen. Jeder Kunde hat Zugriff auf eine andere Liste von Geschäften. Der Entwickler möchte ein Data Studio-Dashboard in seine Anwendung einbetten. Wenn sich ein Kunde anmeldet, sollen ihm nur die Verkaufsdaten für die Geschäfte angezeigt werden, auf die er Zugriff hat. Kunden sollten sich für diesen Vorgang nicht in ihrem Google-Konto anmelden müssen.
Für die vorgeschlagene Lösung muss der Entwickler einen Community Connector erstellen, ein Token über die Einbettungs-URL übergeben und dann Daten basierend auf dem Token filtern.
Voraussetzungen
- Dashboard-Zuschauer melden sich in der Drittanbieteranwendung an.
- Die Anwendung muss ein eindeutiges Token über die Einbettungs-URL an das Data Studio-Dashboard übergeben. Das Token kann entweder zum Nachschlagen von Filterinformationen verwendet werden oder die Filterinformationen können darin verschlüsselt sein.
- Der Community Connector sollte das Token in die Filterwerte konvertieren können.
Beschränkungen
- Wenn Sie G Suite-Kunde sind und Ihr Administrator die Freigabe von Drive-Dateien für „Jeder mit dem Link“ deaktiviert hat, können Sie den Bericht nicht für Nutzer außerhalb Ihrer Organisation freigeben.
Lösung
Führen Sie alle folgenden Schritte aus, um die Lösung zu implementieren.
Nutzer-Token in der Web-App generieren
Generieren Sie für jeden angemeldeten Nutzer in Ihrer Webanwendung ein eindeutiges Token.Sie übergeben dieses Token in einem späteren Schritt an das eingebettete Dashboard.
Sie sollten das Token verwenden, um relevante Daten zu filtern. Zu den Optionen gehören:
- Erstellen Sie einen API-Endpunkt, der gefilterte Daten oder die Nutzerinformationen für ein bestimmtes Token zurückgibt.
- Verschlüsseln Sie die Nutzerinformationen im Token, damit sie später im Connector entschlüsselt werden können.
Neuen Community Connector erstellen
Lesen Sie den Artikel Community Connectors und arbeiten Sie das Community Connector Codelab durch, um loszulegen. Verwenden Sie die Tools für die lokale Entwicklung zum Erstellen von Connectors, um den Entwicklungsprozess zu beschleunigen und zu vereinfachen.
Connector-Code schreiben
getConfig()sollte mindestens ein Konfigurationselement zurückgeben. Damit wird ein Token aus den Parametern der Einbettungs-URL erfasst.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()hat über dasrequest.configParams-Objekt Zugriff auf das Token. Mit dem Token können Sie gefilterte Daten abrufen oder bereits abgerufene Daten filtern.
Im obigen Beispiel wäre das Tokenrequest.configParams.token. IngetData()wird das Token an einen REST-API-Endpunkt übergeben, um eine Liste von Store-IDs abzurufen. Diese Store-IDs werden dann verwendet, um die SQL-Abfrage zum Abrufen von Verkaufsdaten zu erstellen.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; }
Dashboard erstellen
- Bereitstellungen und Versionen für Connectors
- Erstellen Sie eine Produktionsbereitstellung für den Connector.
- Mit dem Link für die Produktionsbereitstellung können Sie eine Datenquelle und einen Bericht in Data Studio erstellen.
- Für den Konfigurationsparameter
token: Betrachtern des Berichts erlauben, Parameterwerte zu ändern. - Geben Sie das Dashboard für ausgewählte Nutzer oder für „Jeder, der über den Link verfügt“ frei.
- Aktivieren Sie das Einbetten für den Bericht.
Dashboard in Ihre Plattform einbetten
- URL-Parameter im Bericht
- Übergeben Sie den dynamisch generierten Tokenwert mithilfe von URL-Parametern an den eingebetteten Data Studio-Bericht.
Die Einbettungs-URL sieht dann etwa so aus:
`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
Empfehlungen
- Sie sollten ein kurzlebiges Token erstellen.
- Achten Sie darauf, dass im Dashboard keine Informationen preisgegeben werden, die mit einem ungültigen Token aufgerufen wurden.