1. Прежде чем начать
В этой лаборатории кода мы будем использовать Looker Embed SDK для встраивания панели мониторинга Looker на вашу веб-страницу. Вы вызовете серию методов SDK, которые автоматически создадут iframe, встроят в него контент Looker и настроят связь между вашим iframe и вашей веб-страницей.
Предварительные условия
- Иметь работающий экземпляр Looker
- У вас есть панель мониторинга Looker, которую вы хотите встроить в свое веб-приложение или веб-страницу.
- Ознакомьтесь с JavaScript и обещаниями JavaScript.
Что вы узнаете
- Как конфиденциально встроить контент Looker с помощью Embed SDK
- Как отправлять и получать сообщения ( действия и события ) со встроенным контентом Looker с помощью Embed SDK
Что вам понадобится
- Доступ к HTML и JavaScript вашего внешнего кода.
- Доступ к административным настройкам встраивания в ваш экземпляр Looker
2. Подготовка
Вам необходимо подготовить экземпляр HTML и Looker, прежде чем его можно будет встроить с помощью Embed SDK.
Добавьте элемент контейнера встроенного iframe
Внутри HTML-кода вашей веб-страницы создайте элемент div
и определите для него атрибут id
.
<div id="looker-embed" />
Внесите в список разрешенных домен для внедрения в экземпляре Looker.
Вам необходимо внести в белый список домен для встраивания в вашем экземпляре Looker.
Определите домен веб-страницы, на которой размещен встроенный контент Looker. Допустим, URL-адрес веб-страницы — https://mywebsite.com/with/embed
тогда домен веб-страницы — https://mywebsite.com
.
Перейдите на страницу «Встроить» в разделе «Администратор » вашего экземпляра Looker. https://your_instance.looker.com/admin/embed
В поле «Разрешенный список встроенных доменов» введите домен встроенного домена. После ввода нажмите клавишу Tab , чтобы домен появился в поле. Не включайте косую черту /
.
Нажмите кнопку «Обновить» .
3. Создайте вставку
Теперь давайте создадим и настроим конструктор встраивания SDK для «создания» встроенного контента Looker.
Инициализируйте SDK
Сначала импортируйте, а затем инициализируйте SDK с доменом вашего экземпляра Looker.
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
Создайте конструктор встраивания
Затем определите идентификатор информационной панели Looker, которую вы хотите встроить. Если ваша панель мониторинга находится по адресу instance_name.looker.com/dashboard/12345
, то идентификатор вашей панели мониторинга — 12345
.
Вызовите метод SDK createDashboardWithId()
с идентификатором информационной панели, чтобы создать конструктор встраивания. Этот метод вернет конструктор встраивания.
LookerEmbedSDK.createDashboardWithId(12345)
Настройте и создайте конструктор встраивания
Теперь давайте настроим построитель встраивания, прежде чем мы сообщим ему о необходимости создания встроенного iframe. Добавьте следующий пример кода непосредственно после вызова метода createDashboardWithId()
из предыдущего примера кода.
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.build()
Каждый метод построителя встраивания возвращает сам построитель встраивания, поэтому мы связываем вызовы метода вместе. Давайте пройдемся по каждому методу:
- Метод
appendTo()
определяет родительский элемент iframe. Мы передаем идентификатор элемента HTML, который мы определили ранее на этапе подготовки. - Метод
withFrameBorder()
устанавливает атрибут border-border в iframe. Это один из нескольких методов, которые определяют атрибуты HTML в iframe. - Метод
build()
создает iframe с настроенными атрибутами HTML.
Окончательная проверка
После предыдущих шагов ваш код должен выглядеть так:
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
LookerEmbedSDK.createDashboardWithId(12345)
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.build()
Теперь ваша панель управления Looker встроена в вашу веб-страницу с помощью Embed SDK!
4. Отправляйте и получайте сообщения для встраивания
Теперь давайте посмотрим, как отправлять и получать сообщения со встроенным контентом Looker с помощью Embed SDK. Мы называем сообщения, которые ваше приложение отправляет в iframe, действиями , а сообщения, которые ваше приложение получает из iframe, — событиями .
Получать события
Давайте поработаем с нашим предыдущим кодом. Чтобы прослушивать события, мы вызываем метод on() встроенного компоновщика перед вызовом метода build()
.
...
.on('dashboard:run:complete',() => console.log(‘Embedded dashboard loaded!')
...
Здесь мы вызываем метод on()
, чтобы установить прослушиватель событий на dashboard:run:complete
поступающее из iframe при построении iframe. Событие сообщит нам, когда панель мониторинга завершит загрузку. Проверьте ссылку на событие, чтобы узнать о других событиях, которые можно прослушать.
Отправить действия
Давайте продолжим наш предыдущий код. Чтобы отправить действия в iframe, мы вызываем метод connect()
компоновщика встраивания после вызова метода build()
для инициализации отправки и получения сообщений с помощью iframe.
...
.connect()
.then((embed) => {
embed.send(‘dashboard:run');
})
.catch(console.error(‘Something errored!')
...
Давайте рассмотрим этот пример кода:
- Мы вызываем метод
connect()
, который возвращает обещание. Промис разрешается во встроенный объект, представляющий встроенный iframe, после инициализации механизма отправки и получения сообщений. - Мы вызываем метод
send()
объекта внедрения, чтобы отправить действиеdashboard:run
. Ознакомьтесь со справочником действий , чтобы узнать о других действиях для отправки. - Мы добавляем метод
catch()
на случай, если при инициализации возникнут ошибки.
Окончательная проверка
После предыдущих шагов ваш код теперь должен выглядеть так:
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
LookerEmbedSDK.createDashboardWithId(12345)
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.on('dashboard:run:complete',() => console.log(‘Embedded dashboard loaded!')
.build()
.connect()
.then((embed) => {
embed.send(‘dashboard:run');
})
.catch(console.error(‘Something errored!')
Теперь вы можете общаться со встроенной панелью управления Looker!
5. Дополнительная информация
Поздравляем! Теперь вы можете использовать Embed SDK для частного встраивания панели управления Looker и отправки и получения сообщений из iframe. Посетите эти ресурсы для получения дополнительной информации:
- Вставьте репозиторий SDK для получения дополнительной информации о том, как встроить Looker, особенно если вы хотите встроить контент Looker с помощью единого входа .
- Справочник событий для всех доступных событий и их свойств.
- Справочник действий для всех доступных действий и их свойств.
- Рекомендации по обеспечению безопасности при встраивании контента Looker