1. Zanim zaczniesz
W ramach tego ćwiczenia w Codelabs użyjemy pakietu SDK Looker Embed, aby umieścić panel Lookera na stronie internetowej. Wywołujesz szereg metod pakietu SDK, które automatycznie tworzą element iframe, umieszczają w nim Twoje treści z Lookera i konfigurują komunikację między elementem iframe a stroną internetową.
Wymagania wstępne
- mieć uruchomioną instancję Lookera,
- mieć panel Lookera, który chcesz umieścić w swojej aplikacji internetowej lub na stronie internetowej.
- Znajomość JavaScriptu i obietnic JavaScriptu.
Czego się nauczysz
- Jak prywatnie umieszczać treści z Lookera za pomocą pakietu SDK Embed
- Jak wysyłać i odbierać wiadomości (działania i zdarzenia) za pomocą umieszczonych treści z Lookera za pomocą pakietu SDK Embed
Czego potrzebujesz
- Dostęp do kodu HTML i JavaScript kodu frontendu
- Dostęp administratora do ustawień umieszczania w instancji Lookera
2. Przygotowania
Przed umieszczeniem instancji za pomocą pakietu SDK Embed, musisz przygotować instancję HTML i Lookera.
Dodawanie elementu kontenera iframe umieszczonego elementu
W kodzie HTML strony utwórz element div
i zdefiniuj atrybut id
.
<div id="looker-embed" />
Umieszczanie domeny umieszczonej na liście dozwolonych w instancji Lookera
Musisz umieścić domenę umieszczonej na liście dozwolonych w instancji Lookera.
Określ domenę strony internetowej, na której znajdują się umieszczone treści z Lookera. Załóżmy, że adres URL strony internetowej to https://mywebsite.com/with/embed
, a jej domena to https://mywebsite.com
.
Otwórz stronę Embed (Umieść) w sekcji Admin (Administracja) instancji Lookera. https://your_instance.looker.com/admin/embed
W polu Embedded Domains (Lista dozwolonych domen) wpisz domenę umieszczonej treści. Po wpisaniu domeny naciśnij klawisz Tab, aż domena zostanie wyświetlona w polu. Nie dodawaj ukośnika końcowego /
.
Kliknij przycisk Aktualizuj.
3. Tworzenie elementów do umieszczenia
Teraz utworzymy i skonfigurujmy kreator umieszczania w pakiecie SDK, tak aby „kompilował” umieszczone w nim treści z Lookera.
Inicjowanie pakietu SDK
Najpierw zaimportuj, a potem zainicjuj pakiet SDK w domenie instancji Lookera.
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
Tworzenie kreatora umieszczania
Następnie określ identyfikator panelu Lookera, który chcesz umieścić. Jeśli panel ma wartość instance_name.looker.com/dashboard/12345
, jego identyfikator to 12345
.
Wywołaj metodę pakietu SDK createDashboardWithId()
z identyfikatorem panelu, aby utworzyć kreator umieszczania. Ta metoda zwróci kreator umieszczania.
LookerEmbedSDK.createDashboardWithId(12345)
Konfigurowanie i tworzenie kreatora umieszczania
Teraz skonfigurujmy narzędzie do umieszczania elementów na stronie, zanim poinformujemy go, że ma utworzyć osadzony element iframe. Dodaj poniższy przykładowy kod bezpośrednio po wywołaniu metody createDashboardWithId()
z poprzedniego przykładowego kodu.
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.build()
Każda metoda konstruktora do umieszczania na stronie zwraca ten konstruktor, więc wywołania każdej metody łączą się w łańcuch. Omówmy każdą metodę:
- Metoda
appendTo()
określa element nadrzędny elementu iframe. Przekazujemy identyfikator elementu HTML zdefiniowanego wcześniej na etapie przygotowań. - Metoda
withFrameBorder()
ustawia atrybut frame- border w elemencie iframe. Jest to jedna z kilku metod definiowania atrybutów HTML w elemencie iframe. - Metoda
build()
tworzy element iframe ze skonfigurowanymi atrybutami HTML
Ostatnie sprawdzenie
W poprzednich krokach Twój kod powinien wyglądać następująco:
// Import the Embed SDK as LookerEmbedSDK
LookerEmbedSDK.init('instance_name.looker.com')
LookerEmbedSDK.createDashboardWithId(12345)
.appendTo(‘looker-embed')
.withFrameBorder(‘0')
.build()
Panel Lookera jest teraz umieszczony na Twojej stronie za pomocą pakietu SDK do umieszczenia.
4. Wysyłanie i odbieranie wiadomości umieszczonych na stronie
Przyjrzyjmy się teraz wysyłaniu i odbieraniu wiadomości za pomocą umieszczonych treści z Lookera za pomocą pakietu SDK Embed. Wiadomości wysyłane przez aplikację do elementu iframe nazywamy działaniami, a wiadomości otrzymywane przez aplikację z elementu iframe nazywamy zdarzeniami.
Odbieranie zdarzeń
Użyjmy poprzedniego kodu. Aby nasłuchiwać zdarzeń, przed wywołaniem metody build()
wywołujemy metodę on() w kreatorze umieszczania.
...
.on('dashboard:run:complete',() => console.log(‘Embedded dashboard loaded!')
...
W tym przypadku nazywamy metodę on()
, która po utworzeniu elementu iframe ustawia odbiornik zdarzenia dashboard:run:complete
pochodzącego z elementu iframe. Zdarzenie to poinformuje nas, gdy wczytywanie panelu się zakończy. Inne zdarzenia do nasłuchiwania znajdziesz w dokumentacji zdarzeń.
Wysyłanie działań
Przejdźmy do poprzedniego kodu. Aby wysłać działania do elementu iframe, po wywołaniu metody build()
w kreatorze umieszczania wywołujemy metodę connect()
w celu zainicjowania wysyłania i odbierania wiadomości za pomocą elementu iframe.
...
.connect()
.then((embed) => {
embed.send(‘dashboard:run');
})
.catch(console.error(‘Something errored!')
...
Przyjrzyjmy się temu przykładowemu kodowi:
- Nazywamy metodę
connect()
, która zwraca obietnicę. Po zainicjowaniu mechanizmu wysyłania i odbierania wiadomości trafia do obiektu osadzonego, który reprezentuje osadzony element iframe. - Aby wysłać działanie
dashboard:run
, w umieszczonym obiekcie wywołujemy metodęsend()
. Inne działania, które możesz podjąć, znajdziesz w przewodniku po działaniach. - Dodajemy metodę
catch()
na wypadek wystąpienia błędów podczas inicjowania.
Ostatnie sprawdzenie
W poprzednich krokach Twój kod powinien wyglądać teraz tak:
// 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!')
Możesz teraz komunikować się z umieszczonym panelem Lookera.
5. Dodatkowe informacje
Gratulacje! Za pomocą pakietu SDK Embed SDK możesz teraz prywatnie umieścić swój panel Lookera i wysyłać i odbierać wiadomości za pomocą elementu iframe. Więcej informacji znajdziesz w tych materiałach:
- Umieść repozytorium SDK, aby uzyskać więcej informacji na temat umieszczania Lookera, zwłaszcza jeśli chcesz umieścić treści z użyciem SSO z Lookera.
- Informacje o zdarzeniach dotyczące wszystkich dostępnych zdarzeń i ich właściwości
- Wszystkie dostępne działania i ich właściwości znajdziesz w informacjach o działaniach.
- Sprawdzone metody zapewniania bezpieczeństwa dotyczące umieszczania treści z Lookera