Z tego przewodnika dowiesz się, jak skonfigurować i uruchomić przykładowy dodatek do Google Meet, tworząc główny obszar i panel boczny. Przykłady „Hello World” na tej stronie są też dostępne w GitHubie jako kompletne dodatki do Meet utworzone za pomocą podstawowego JavaScriptu lub Next.js TypeScript.
Instalowanie i importowanie pakietu SDK
Dostęp do pakietu SDK możesz uzyskać za pomocą npm lub gstatic.
npm (zalecane)
Jeśli Twój projekt korzysta z npm, możesz postępować zgodnie z instrukcjami dotyczącymi pakietu SDK dodatków do Meet w npm.
Najpierw zainstaluj pakiet npm:
npm install @googleworkspace/meet-addons
Następnie pakiet SDK dodatków do Meet jest dostępny po zaimportowaniu interfejsu
MeetAddonExport:
import {meet} from '@googleworkspace/meet-addons/meet.addons';
Użytkownicy TypeScriptu mają do dyspozycji definicje TypeScriptu spakowane z modułem.
Użytkownicy TypeScriptu powinni ustawić wartość moduleResolution na "bundler" w tsconfig.json projektu, aby specyfikacja „exports” w pliku package.json umożliwiła importowanie eksportu pakietu udostępniania ekranu.
gstatic
Pakiet SDK dodatków do Google Meet jest dostępny jako pakiet JavaScript z gstatic, domeny, która udostępnia treści statyczne.
Aby użyć pakietu SDK dodatków do Meet, dodaj do aplikacji ten tag skryptu:
<script src="https://www.gstatic.com/meetjs/addons/1.1.0/meet.addons.js"></script>
Pakiet SDK dodatków do Meet jest dostępny w interfejsie MeetAddon w sekcji window.meet.addon.
Tworzenie strony panelu bocznego
W panelu bocznym wyświetlą się zainstalowane dodatki, które możesz wybrać i używać. Po wybraniu dodatku w elemencie iframe wczytuje się adres URL panelu bocznego określony w pliku manifestu dodatku. Powinien to być punkt wejścia do aplikacji. Musi on co najmniej:
- Sygnalizuj zakończenie wczytywania dodatku. Podczas wczytywania dodatku Meet wyświetla ekran wczytywania. Gdy sesja dodatku zostanie utworzona przez wywołanie metody - createAddonSession(), Meet traktuje to jako sygnał z dodatku, że wczytywanie zostało zakończone i użytkownik może wchodzić w interakcje z treściami innej firmy. Dodatek nie powinien wywoływać metody- createAddonSession(), dopóki nie zakończy się wczytywanie treści.
- Utwórz klienta panelu bocznego. Aby uzyskać dostęp do pakietu SDK dodatków do Meet w panelu bocznym, musisz utworzyć instancję interfejsu - MeetSidePanelClient. Zapewnia to kontrolę nad głównym pakietem SDK dodatków do Meet.
- Rozpocznij aktywność. Umożliwia to innym osobom dołączenie do Twojego dodatku i opcjonalne otwarcie go w głównej części ekranu. 
Poniższy przykładowy kod pokazuje, jak sesja tworzy klienta panelu bocznego i jak klient panelu bocznego rozpoczyna aktywność na głównym etapie:
Podstawowy JS + Webpack
W nowym pliku o nazwie main.js zdefiniuj funkcję, która tworzy sesję dodatku i klienta panelu bocznego oraz rozpoczyna aktywność po kliknięciu przycisku o identyfikatorze 'start-activity':
import { meet } from '@googleworkspace/meet-addons/meet.addons';
const CLOUD_PROJECT_NUMBER = 'CLOUD_PROJECT_NUMBER';
const MAIN_STAGE_URL = 'MAIN_STAGE_URL';
/**
 * Prepares the add-on Side Panel Client, and adds an event to launch the
 * activity in the main stage when the main button is clicked.
 */
export async function setUpAddon() {
    const session = await meet.addon.createAddonSession({
        cloudProjectNumber: CLOUD_PROJECT_NUMBER,
    });
    const sidePanelClient = await session.createSidePanelClient();
    document
        .getElementById('start-activity')
        .addEventListener('click', async () => {
            await sidePanelClient.startActivity({
                mainStageUrl: MAIN_STAGE_URL
            });
        });
}
W nowym pliku o nazwie SidePanel.html zdefiniuj przycisk, który uruchamia aktywność, i wywołaj funkcję z pliku main.js podczas wczytywania dokumentu:
<html>
<head>
    <title>Meet add-on Side Panel</title>
    <script src="./main.js"></script>
</head>
<body style="width: 100%; height: 100%; margin: 0">
    <div>This is the add-on Side Panel. Only you can see this.</div>
    <button id="start-activity">Launch Activity in Main Stage.</button>
    <script>
        document.body.onload = () => {
            // Library name (`helloWorld`) is defined in the webpack config.
            // The function (`setUpAddon`) is defined in main.js.
            helloWorld.setUpAddon();
        };
    </script>
</body>
</html>
Musisz też dołączyć pakiet SDK dodatków do Meet do main.js i udostępnić go w bibliotece. Zalecamy to zrobić, 
instalując webpack i używając opcji library w pliku webpack.config.js:
module.exports = {
    entry: './main.js',
    output: {
        library: 'helloWorld',
        ...
    },
    ...
};
Next.js
Dodaj nowy Page, aby wyświetlić panel boczny. Ta strona tworzy sesję dodatku i klienta panelu bocznego podczas wczytywania oraz rozpoczyna aktywność po kliknięciu przycisku:
'use client';
import { useEffect, useState } from 'react';
import {
    meet,
    MeetSidePanelClient,
} from '@googleworkspace/meet-addons/meet.addons';
export default function Page() {
    const [sidePanelClient, setSidePanelClient] = useState<MeetSidePanelClient>();
    // Launches the main stage when the main button is clicked.
    async function startActivity(e: unknown) {
        if (!sidePanelClient) {
            throw new Error('Side Panel is not yet initialized!');
        }
        await sidePanelClient.startActivity({
            mainStageUrl: 'MAIN_STAGE_URL'
        });
    }
    /**
     * Prepares the add-on Side Panel Client.
     */
    useEffect(() => {
        (async () => {
            const session = await meet.addon.createAddonSession({
                cloudProjectNumber: 'CLOUD_PROJECT_NUMBER',
            });
            setSidePanelClient(await session.createSidePanelClient());
        })();
    }, []);
    return (
        <>
            <div>
                This is the add-on Side Panel. Only you can see this.
            </div>
            <button onClick={startActivity}>
                Launch Activity in Main Stage.
            </button>
        </>
    );
}
Zastąp następujące elementy:
- CLOUD_PROJECT_NUMBER: numer projektu Google Cloud. 
- MAIN_STAGE_URL: adres URL głównej sceny, który utworzysz w następnym kroku. 
Tworzenie strony głównej
Główny obszar to główny obszar, w którym możesz wyświetlać dodatek, jeśli potrzebujesz większej przestrzeni roboczej. Główna scena otworzy się po rozpoczęciu aktywności. Aby uzyskać dostęp do funkcji pakietu SDK dodatków do Meet w głównej części ekranu, musisz użyć interfejsu MeetMainStageClient.
Poniższy przykładowy kod pokazuje przykład strony głównej, która renderuje niestandardowy element div, aby wyświetlić tekst „Hello, world!”:
Podstawowy JS + Webpack
Dodaj do utworzonego wcześniej pliku main.js tę funkcję, aby główny etap mógł sygnalizować zakończenie wczytywania:
/**
 * Prepares the add-on Main Stage Client, which signals that the add-on has
 * successfully launched in the main stage.
 */
export async function initializeMainStage() {
    const session = await meet.addon.createAddonSession({
        cloudProjectNumber: CLOUD_PROJECT_NUMBER,
    });
    await session.createMainStageClient();
}
Następnie dodaj nowy plik MainStage.html, który wywołuje nową funkcję initializeMainStage i wyświetla niestandardową treść „hello, world”:
<html>
<body style="width: 100%; height: 100%; margin: 0">
    <div>
        This is the add-on Main Stage. Everyone in the call can see this.
    </div>
    <div>Hello, world!</div>
    <script>
        document.body.onload = () => {
            helloWorld.initializeMainStage();
        };
    </script>
</body>
</html>
Next.js
Dodaj Page, aby wyświetlić główną scenę. Ta strona tworzy sesję dodatku i klienta panelu bocznego podczas wczytywania oraz wyświetla niestandardową treść „hello, world”:
'use client';
import { useEffect } from 'react';
import { meet } from '@googleworkspace/meet-addons/meet.addons';
export default function Page() {
    /**
     * Prepares the add-on Main Stage Client, which signals that the add-on
     * has successfully launched in the main stage.
     */
    useEffect(() => {
        (async () => {
            const session = await meet.addon.createAddonSession({
                cloudProjectNumber: 'CLOUD_PROJECT_NUMBER',
            });
            await session.createMainStageClient();
        })();
    }, []);
    return (
        <>
            <div>
                This is the add-on Main Stage.
                Everyone in the call can see this.
            </div>
            <div>Hello, world!</div>
        </>
    );
}
Zastąp CLOUD_PROJECT_NUMBER numerem projektu Google Cloud.
Uruchamianie przykładu
Aby uruchomić lokalnie:
Podstawowy JS + Webpack
Uruchom webpack, aby połączyć plik main.js z pakietem SDK dodatków do Meet:
npx webpack
Otwórz plik SidePanel.html i plik MainStage.html w dowolnej przeglądarce.
Powinno to wyglądać tak samo jak w przypadku wdrożenia podstawowego przykładu JS na GitHubie w SidePanel.html i MainStage.html w GitHub Pages.
Next.js
Uruchom następny:
next dev
Otwórz http://localhost:3000/sidepanel lub http://localhost:3000/mainstage. Powinny one wyglądać tak samo jak wdrożenie przykładowej aplikacji Next.js w GitHubie w SidePanel.html i MainStage.html w GitHub Pages.
Wdrażanie dodatku do Meet
Wdrażanie dodatku to proces dwuetapowy:
- Najpierw musisz wdrożyć kod z tego przewodnika w witrynie, której jesteś właścicielem, używając dowolnego rozwiązania do wdrażania. Oficjalne przykładowe dodatki do Google Meet w GitHubie są wdrażane za pomocą procesu GitHub na stronach GitHub, ale możesz też używać narzędzi takich jak Firebase Hosting. 
- Po wdrożeniu aplikacji musisz skonfigurować wdrożenie dodatku, postępując zgodnie z instrukcjami wdrażania dodatku do Meet. Postępując zgodnie z tym przewodnikiem po wdrażaniu, utworzysz ostateczny dodatek do Meet, który jest elementem iframe w Meet aplikacji wdrożonej w kroku 1. 
Uruchamianie przykładu
- Otwórz Meet. 
- Kliknij przycisk narzędzi do spotkań  . .
- W sekcji Twoje dodatki powinien być widoczny Twój dodatek. Wybierz go, aby uruchomić dodatek. 
Dodawanie kolejnych funkcji
Teraz, gdy masz już podstawowy panel boczny i główną część ekranu, możesz zacząć dodawać do dodatku inne funkcje:
- Współpraca przy użyciu dodatku do Meet
- Wiadomości między głównym widokiem a panelem bocznym
- Promowanie dodatku
Zachęcamy do korzystania z przykładowych dodatków do Meet na GitHubie jako materiałów referencyjnych podczas tworzenia tych funkcji.