Например, предположим, что у разработчика 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
Рекомендации
- Вам следует создать недолговечный токен.
- Убедитесь, что на информационной панели нет утечки информации при просмотре с недействительным токеном.