Например, предположим, что у разработчика X есть веб-приложение для своих клиентов. Клиенты входят в приложение, используя свои учетные данные, и могут просматривать данные о продажах в разных магазинах. Каждый клиент имеет доступ к разному списку магазинов. Разработчик хотел бы встроить в свое приложение панель управления Looker Studio, чтобы при входе в систему клиент видел только данные о продажах тех магазинов, к которым у него есть доступ. Клиентам не нужно входить в свою учетную запись Google, чтобы этот процесс работал.
Предлагаемое решение потребует от разработчика создания соединителя сообщества, передачи токена через URL-адрес внедрения, а затем фильтрации данных на основе токена.
Требования
- Зрители информационной панели войдут в стороннее приложение.
- Приложение должно передать уникальный токен на панель управления Looker Studio через URL-адрес внедрения. Токен можно использовать либо для поиска информации о фильтре, либо зашифровать информацию о фильтре.
- Соединитель сообщества должен иметь возможность преобразовывать токен в значения фильтра.
Ограничения
- Если вы являетесь клиентом G Suite и ваш администратор отключил доступ к файлам Диска для всех, у кого есть ссылка, вы не сможете поделиться отчетом с пользователями за пределами вашей организации.
Решение
Выполните все следующие шаги, чтобы реализовать решение.
Создать токен пользователя в веб-приложении
Создайте уникальный токен для каждого вошедшего в систему пользователя в вашем веб-приложении. На следующем этапе вы передадите этот токен на встроенную панель мониторинга.
Вам следует использовать токен для фильтрации соответствующих данных. Опции включают в себя:
- Создайте конечную точку API, которая возвращает отфильтрованные данные или информацию о пользователе для определенного токена.
- Зашифруйте информацию о пользователе в токене, чтобы ее можно было позже расшифровать в соединителе.
Создайте новый соединитель сообщества
Чтобы приступить к работе, ознакомьтесь с тем, как работают соединители сообщества , и завершите кодовую лабораторную работу по соединителям сообщества . Используйте инструменты локальной разработки для создания соединителей для более быстрого и простого процесса разработки.
Напишите код разъема
getConfig()должен возвращать хотя бы один элемент конфигурации. Это будет использоваться для захвата токена из параметров URL-адреса внедрения.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 для получения списка идентификаторов магазинов . Эти идентификаторы магазинов затем используются для построения 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выберите Разрешить зрителям отчетов изменять значения параметров . - Поделитесь панелью управления с выбранными пользователями или с «Всем, у кого есть ссылка».
- Включите встраивание отчета.
Встройте панель управления в свою платформу
- Узнайте, как работают параметры URL-адреса отчета .
- Передайте динамически созданное значение токена с использованием параметров URL-адреса во встроенный отчет Looker Studio.
Ваш URL-адрес для встраивания будет выглядеть примерно так:`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
Рекомендации
- Вам следует создать недолговечный токен.
- Убедитесь, что на информационной панели нет утечки информации при просмотре с недействительным токеном.