1. Antes de começar
Neste codelab, vamos usar o SDK de incorporação do Looker para incorporar um painel do Looker na sua página da Web. Você vai chamar uma série de métodos do SDK que vão criar automaticamente um iframe, incorporar seu conteúdo do Looker nele e configurar as comunicações entre o iframe e a página da Web.
Pré-requisitos
- Ter uma instância do Looker em execução
- Ter um painel do Looker que você quer incorporar no seu aplicativo da Web ou página da Web
- Conhecer JavaScript e promessas de JavaScript.
O que você vai aprender
- Como incorporar conteúdo do Looker de forma particular com o SDK de incorporação
- Como enviar e receber mensagens (ações e eventos) com o conteúdo incorporado do Looker usando o SDK de incorporação
O que é necessário
- Acesso ao HTML e JavaScript do código do front-end
- Acesso às configurações de incorporação de administrador na sua instância do Looker
2. Preparações
Você precisa preparar sua instância HTML e do Looker antes de incorporar com o SDK de incorporação.
Adicionar o elemento de contêiner do iframe de incorporação
No HTML da sua página da Web, crie um elemento div e defina um atributo id nele.
<div id="looker-embed" />
Coloque o domínio da incorporação na lista de permissões da instância do Looker
Você precisa adicionar o domínio da incorporação à lista de permissões na sua instância do Looker.
Determine o domínio da página da Web que hospeda seu conteúdo incorporado do Looker. Se o URL da página da Web for https://mywebsite.com/with/embed, o domínio será https://mywebsite.com.
Acesse a página Incorporar na seção Administrador da sua instância do Looker. https://your_instance.looker.com/admin/embed
No campo Lista de permissões de domínio incorporado, insira o domínio da incorporação. Depois de digitar, pressione a tecla Tab para que o domínio apareça em uma caixa. Não inclua uma barra final /.
Selecione o botão Atualizar.
3. Criar a incorporação
Agora vamos criar e configurar o criador de incorporação do SDK para "criar" seu conteúdo incorporado do Looker.
Inicialize o SDK
Primeiro, importe e inicialize o SDK com o domínio da sua instância do Looker.
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
Criar o criador de incorporações
Em seguida, determine o ID do painel do Looker que você quer incorporar. Se o painel estiver em instance_name.looker.com/dashboard/12345, o ID dele será 12345.
Chame o método createDashboardWithId() do SDK com o ID do painel para criar um builder de incorporação. Esse método vai retornar o criador de incorporação.
LookerEmbedSDK.createDashboardWithId(12345)
Configurar e criar o criador de incorporações
Agora, vamos configurar o criador de incorporação antes de pedir para ele criar o iframe incorporado. Adicione o exemplo de código a seguir diretamente após a chamada de método createDashboardWithId() do exemplo de código anterior.
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.build()
Cada método do criador de incorporação retorna o próprio criador, então encadeamos as chamadas de método. Vamos analisar cada método:
- O método
appendTo()determina o elemento pai do iframe. Transmitimos o ID do elemento HTML que definimos anteriormente na etapa de preparação. - O método
withFrameBorder()define o atributo frame-border no iframe. Esse é um dos vários métodos que definem atributos HTML no iframe. - O método
build()cria o iframe com os atributos HTML configurados.
Verificação final
Com as etapas anteriores, o código vai ficar assim:
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
LookerEmbedSDK.createDashboardWithId(12345)
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.build()
Agora você tem seu painel do Looker incorporado na página da Web com o SDK de incorporação.
4. Enviar e receber mensagens incorporadas
Agora vamos ver como enviar e receber mensagens com o conteúdo incorporado do Looker usando o SDK Embed. Chamamos as mensagens que seu aplicativo envia ao iframe de ações e as mensagens que seu aplicativo recebe do iframe de eventos.
Receber eventos
Vamos trabalhar com o código anterior. Para detectar eventos, chamamos o método on() do criador de incorporações antes de chamar o método build().
...
.on('dashboard:run:complete',() => console.log(‘Embedded dashboard loaded!')
...
Aqui, chamamos o método on() para definir um listener de eventos no evento dashboard:run:complete do iframe quando ele é criado. O evento nos informa quando o painel termina de carregar. Confira a referência de eventos para outros eventos a serem detectados.
Enviar ações
Vamos continuar com o código anterior. Para enviar ações ao iframe, chamamos o método connect() do criador de incorporações depois de chamar o método build() para inicializar o envio e recebimento de mensagens com o iframe.
...
.connect()
.then((embed) => {
embed.send(‘dashboard:run');
})
.catch(console.error(‘Something errored!')
...
Vamos analisar este exemplo de código:
- Chamamos o método
connect(), que retorna uma promessa. A promessa é resolvida em um objeto de incorporação que representa o iframe incorporado depois que o mecanismo de envio e recebimento de mensagens é inicializado. - Chamamos o método
send()no objeto de incorporação para enviar uma açãodashboard:run. Confira a referência de ações para ver outras ações que podem ser enviadas. - Adicionamos um método
catch()caso haja erros durante a inicialização.
Verificação final
Com as etapas anteriores, seu código vai ficar assim:
// 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!')
Agora você pode se comunicar com seu painel incorporado do Looker.
5. Informações adicionais
Parabéns! Agora você pode usar o SDK de incorporação para incorporar seu painel do Looker de forma privada e enviar e receber mensagens do iframe. Confira estes recursos para mais informações:
- Repositório do SDK de incorporação para mais informações sobre como incorporar o Looker, principalmente se você quiser incorporar conteúdo do Looker com SSO.
- Referência de eventos para todos os eventos disponíveis e as propriedades deles
- Referência de ações para todas as ações disponíveis e as propriedades delas
- Práticas recomendadas de segurança para incorporar conteúdo do Looker