Załóżmy np., że próbujesz stworzyć rozwiązanie dla swojej organizacji sprzedaży. Dział sprzedaży jest podzielony na wiele regionów, z których każdy ma własnego menedżera regionalnego. Zbiór danych o sprzedaży w BigQuery zawiera wielkość sprzedaży według regionu i daty.
Proponowane rozwiązanie będzie korzystać z jednego panelu, w którym menedżerowie regionalni będą mogli wyświetlać dane dotyczące sprzedaży tylko w swoich regionach.
Wymagania
- Użytkownicy panelu będą zalogowani na konta Google.
- Dostępne jest mapowanie między adresem e-mail użytkownika a danymi/wierszami, do których ten użytkownik ma dostęp.
- Do uzyskiwania dostępu do danych BigQuery będzie używane konto usługi. Dzięki temu płatności będą scentralizowane i będą zarządzane przez dostawcę panelu.
Ograniczenia
- Panel wymaga jednorazowej autoryzacji od każdego przeglądającego przy pierwszym wyświetleniu.
- Przeglądający nie mogą edytować panelu ani udostępniać go innym osobom.
- Jeśli jesteś klientem Workspace i administrator wyłączył udostępnianie plików z Dysku „Każda osoba mająca link”, usuń ograniczenie udostępniania lub opracuj rozwiązanie na koncie Gmail.com.
Rozwiązanie
Aby wdrożyć rozwiązanie, wykonaj wszystkie poniższe czynności.
Utwórz nowe społecznościowe oprogramowanie sprzęgające
Zapoznaj się z artykułem Jak działa społecznościowe oprogramowanie sprzęgające i wykonaj ćwiczenie z programowania społecznościowego oprogramowania sprzęgającego, aby rozpocząć. Użyj narzędzia dla programistów do tworzenia oprogramowania sprzęgającego, aby przyspieszyć i ułatwić proces programowania.
Pisanie kodu oprogramowania sprzęgającego
- Funkcja
getAuthType()
powinna zwrócić wartośćNONE
. getConfig()
powinien zwrócić pustą konfigurację.- Opcjonalnie: jeśli potrzebujesz określonych danych wejściowych do skonfigurowania panelu, możesz tutaj poprosić użytkownika o podanie takich danych.
- Funkcja
getSchema()
powinna zwrócić schemat dla Twojego zapytania.- Opcjonalnie: niestandardowe pola i obliczenia możesz dodawać w zapytaniu SQL lub za pomocą pól obliczeniowych w ramach schematu.
- Tabela
getData()
zostanie ukończona w późniejszym kroku.
Zaktualizuj plik manifestu
Wyświetl Dokumentacja pliku manifestu i uzupełnij plik manifestu, podając wszystkie wymagane informacje, w tym:
- ustaw
dataStudio.forceViewersCredentials
natrue
. - ustaw
dataStudio.advancedServices.data
natrue
. - W polu
oauthScopes
dodajhttps://www.googleapis.com/auth/userinfo.email
ihttps://www.googleapis.com/auth/script.external_request
. Więcej informacji znajdziesz w artykule Zakresy autoryzacji dla Apps Script.- Warunkowe: dodaj wszystkie odpowiednie zakresy usług używanych w oprogramowaniu sprzęgającym.
Plik manifestu powinien wyglądać tak:
{
...
"dataStudio": {
"forceViewersCredentials": true,
"advancedServices": {
"data": true
},
...
}
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/userinfo.email"
],
...
}
Wdrażanie konta usługi
- Utwórz konto usługi w projekcie Google Cloud. To będzie Twój projekt rozliczeniowy.
- Sprawdź, czy to konto usługi ma dostęp do BigQuery w projekcie w chmurze.
- Wymagane role zarządzania tożsamościami i dostępem:
BigQuery Data Viewer
,BigQuery Job User
- Wymagane role zarządzania tożsamościami i dostępem:
- Pobierz plik JSON, aby uzyskać klucze kont usługi. Przechowuj klucze we właściwościach skryptu projektu oprogramowania sprzęgającego.
- Dodaj bibliotekę OAuth2 dla Apps Script do projektu Apps Script.
- Zaimplementuj wymagany kod OAuth2 na tym koncie usługi:
var SERVICE_ACCOUNT_CREDS = 'SERVICE_ACCOUNT_CREDS'; var SERVICE_ACCOUNT_KEY = 'private_key'; var SERVICE_ACCOUNT_EMAIL = 'client_email'; var BILLING_PROJECT_ID = 'project_id'; /** * Copy the entire credentials JSON file from creating a service account in GCP. */ function getServiceAccountCreds() { return JSON.parse(scriptProperties.getProperty(SERVICE_ACCOUNT_CREDS)); } function getOauthService() { var serviceAccountCreds = getServiceAccountCreds(); var serviceAccountKey = serviceAccountCreds[SERVICE_ACCOUNT_KEY]; var serviceAccountEmail = serviceAccountCreds[SERVICE_ACCOUNT_EMAIL]; return OAuth2.createService('RowLevelSecurity') .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth') .setTokenUrl('https://accounts.google.com/o/oauth2/token') .setPrivateKey(serviceAccountKey) .setIssuer(serviceAccountEmail) .setPropertyStore(scriptProperties) .setCache(CacheService.getScriptCache()) .setScope(['https://www.googleapis.com/auth/bigquery.readonly']); }
Wdróż getData()
- Utwórz zapytanie BigQuery.
- Przy użyciu e-maila wyszukaj mapowanie między wiadomością a danymi.
- Do filtrowania danych użyj klauzuli JOIN lub WHERE.
- Uzyskaj adres e-mail rzeczywistego użytkownika (informacje o tożsamości użytkownika).
- Użyj zaawansowanych usług Looker Studio, aby zwrócić konfigurację zapytania z getData.
- Przekaż utworzone zapytanie, projekt rozliczeniowy i token OAuth konta usługi.
- Warunkowe: jeśli pobierasz dane wejściowe użytkowników za pomocą oprogramowania sprzęgającego
getConfig
, zastosuj je jako parametry BigQuery.
Tworzenie panelu
- Dowiedz się, jak działają wdrożenia i wersje oprogramowania sprzęgającego.
- Utwórz wdrożenie produkcyjne oprogramowania sprzęgającego.
- Użyj wdrożenia produkcyjnego, aby utworzyć źródło danych i nowy raport w Looker Studio.
- Dodaj wszystkie tabele i wykresy z raportu.
- Możesz go teraz udostępnić użytkownikom.
Udostępnij panel użytkownikom
- Udostępnij skrypt oprogramowania sprzęgającego wybranym użytkownikom lub każdej osobie mającej link.
- Udostępnij panel wybranym użytkownikom lub każdej osobie, która ma link.
- Opcjonalnie: użyj usługi skracania adresów URL, aby utworzyć krótki link do adresu URL panelu. Udostępnij użytkownikom skrócony adres URL. Pomoże to w razie potrzeby zastąpić adres URL panelu później.
- Opcjonalnie: możesz mierzyć wykorzystanie panelu, konfigurując Google Analytics na potrzeby raportu.