Krótkie wprowadzenie do Node.js

Przewodniki szybkiego startu wyjaśniają, jak skonfigurować i uruchamiać aplikację, która wywołuje interfejs Google Workspace API.

Szybkie starty Google Workspace korzystają z bibliotek klienta interfejsu API do obsługi niektórych szczegółów procesu uwierzytelniania i autoryzacji. Zalecamy używanie bibliotek klienta w przypadku własnych aplikacji. W tym krótkim wprowadzeniu użyjemy uproszczonego podejścia do uwierzytelniania, które jest odpowiednie dla środowiska testowego. W przypadku środowiska produkcyjnego zalecamy zapoznanie się z informacjami na temat uwierzytelniania i autoryzacji, zanim wybierzesz odpowiednie dla swojej aplikacji poświadczenia dostępu.

utworzyć aplikację wiersza poleceń Node.js wysyłającą żądania do interfejsu Google Chat API.

Cele

  • skonfigurować środowisko,
  • Zainstaluj bibliotekę klienta.
  • Skonfiguruj sampel.
  • Uruchom przykład.

Wymagania wstępne

Aby wykonać ten samouczek, musisz spełnić te wymagania wstępne:

Konfigurowanie środowiska

Aby rozpocząć krótkie wprowadzenie, skonfiguruj środowisko.

Włącz API

Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć w projekcie Google Cloud. W jednym projekcie Google Cloud możesz włączyć 1 lub więcej interfejsów API.

Jeśli korzystasz z nowego projektu Google Cloud, aby ukończyć to krótkie wprowadzenie, skonfiguruj ekran zgody OAuth i dodaj siebie jako użytkownika testowego. Jeśli ten krok został już wykonany w przypadku Twojego projektu Cloud, przejdź do następnej sekcji.

  1. W konsoli Google Cloud otwórz Menu > Interfejsy API i usługi > Ekran zgody OAuth.

    Otwórz ekran zgody OAuth

  2. W polu Typ użytkownika wybierz Wewnętrzny, a następnie kliknij Utwórz.
  3. Wypełnij formularz rejestracji aplikacji, a potem kliknij Zapisz i kontynuuj.
  4. Możesz pominąć dodawanie zakresów i kliknąć Zapisz i kontynuuj. W przyszłości, gdy utworzysz aplikację do użytku poza swoją organizacją Google Workspace, musisz zmienić Typ użytkownika na Zewnętrzny, a następnie dodać zakresy autoryzacji wymagane przez aplikację.

  5. Sprawdź podsumowanie rejestracji aplikacji. Aby wprowadzić zmiany, kliknij Edytuj. Jeśli rejestracja aplikacji wygląda dobrze, kliknij Powrót do panelu.

Autoryzowanie danych logowania do aplikacji na komputer

Aby uwierzytelniać użytkowników i dostępować do ich danych w aplikacji, musisz utworzyć co najmniej 1 identyfikator klienta OAuth 2.0. Identyfikator klienta wskazuje konkretną aplikację na serwerach OAuth Google. Jeśli Twoja aplikacja działa na kilku platformach, musisz utworzyć osobny identyfikator klienta dla każdej z nich.
  1. W konsoli Google Cloud kliknij Menu  > Interfejsy API i usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
  3. Kliknij Typ aplikacji > Aplikacja na komputer.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. Kliknij Utwórz. Pojawi się ekran utworzonego klienta OAuth z nowym identyfikatorem klienta i tajnym kluczem klienta.
  6. Kliknij OK. Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.
  7. Zapisz pobrany plik JSON jako credentials.json i przenieś go do katalogu roboczego.

Konfigurowanie aplikacji Google Chat

Aby wywołać interfejs Google Chat API, musisz skonfigurować aplikację Google Chat. W przypadku żądań zapisu Google Chat przypisuje aplikację Google Chat w interfejsie użytkownika za pomocą tych informacji:

  1. W konsoli Google Cloud otwórz stronę Konfiguracja interfejsu API Chat:

    Otwórz stronę konfiguracji Chat API

  2. W sekcji Informacje o aplikacji podaj te dane:

    1. W polu Nazwa aplikacji wpisz Chat API quickstart app.
    2. W polu URL awatara wpisz https://developers.google.com/chat/images/quickstart-app-avatar.png.
    3. W polu Opis wpisz Quickstart for calling the Chat API.
  3. W sekcji Funkcje interaktywne kliknij przełącznik Włącz funkcje interaktywne, aby wyłączyć funkcje interaktywne w aplikacji Google Chat.

  4. Kliknij Zapisz.

Instalowanie biblioteki klienta

  • Zainstaluj biblioteki za pomocą npm:

    npm install @google-apps/chat @google-cloud/local-auth@2.1.0 --save
    

Konfigurowanie próbki

  1. W katalogu roboczym utwórz plik o nazwie index.js.

  2. Wklej do pliku ten kod:

    chat/quickstart/index.js
    const fs = require('fs').promises;
    const path = require('path');
    const process = require('process');
    const {authenticate} = require('@google-cloud/local-auth');
    const {ChatServiceClient} = require('@google-apps/chat');
    const {auth} = require('google-auth-library');
    
    // If modifying these scopes, delete token.json.
    const SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly'];
    
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    const TOKEN_PATH = path.join(process.cwd(), 'token.json');
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Reads previously authorized credentials from the save file.
     *
     * @return {Promise<OAuth2Client|null>}
     */
    async function loadSavedCredentialsIfExist() {
      try {
        const content = await fs.readFile(TOKEN_PATH);
        const credentials = JSON.parse(content);
        return auth.fromJSON(credentials);
      } catch (err) {
        console.log(err);
        return null;
      }
    }
    
    /**
     * Serializes credentials to a file compatible with GoogleAuth.fromJSON.
     *
     * @param {OAuth2Client} client
     * @return {Promise<void>}
     */
    async function saveCredentials(client) {
      const content = await fs.readFile(CREDENTIALS_PATH);
      const keys = JSON.parse(content);
      const key = keys.installed || keys.web;
      const payload = JSON.stringify({
        type: 'authorized_user',
        client_id: key.client_id,
        client_secret: key.client_secret,
        refresh_token: client.credentials.refresh_token,
      });
      await fs.writeFile(TOKEN_PATH, payload);
    }
    
    /**
     * Load or request or authorization to call APIs.
     *
     * @return {Promise<OAuth2Client>}
     */
    async function authorize() {
      let client = await loadSavedCredentialsIfExist();
      if (client) {
        return client;
      }
      client = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
      if (client.credentials) {
        await saveCredentials(client);
      }
      return client;
    }
    
    /**
     * Lists spaces with user credential.
     * @param {OAuth2Client} authClient An authorized OAuth2 client.
     */
    async function listSpaces(authClient) {
      // Create a client
      const chatClient = new ChatServiceClient({
        authClient: authClient,
        scopes: SCOPES,
      });
    
      // Initialize request argument(s)
      const request = {
        // Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE)
        filter: 'space_type = "SPACE"'
      };
    
      // Make the request
      const pageResult = chatClient.listSpacesAsync(request);
    
      // Handle the response. Iterating over pageResult will yield results and
      // resolve additional pages automatically.
      for await (const response of pageResult) {
        console.log(response);
      }
    }
    
    authorize().then(listSpaces).catch(console.error);

Uruchamianie przykładu

  1. Uruchom przykład w katalogu roboczym:

    node .
    
  1. Gdy uruchomisz próbkę po raz pierwszy, pojawi się prośba o autoryzację dostępu:
    1. Jeśli nie zalogowano się na konto Google, zaloguj się, gdy pojawi się taka prośba. Jeśli logujesz się na kilka kont, wybierz jedno konto, którego chcesz użyć do autoryzacji.
    2. Kliknij Accept (Zaakceptuj).

    Twoja aplikacja Node.js działa i wywołuje interfejs Google Chat API.

    Informacje autoryzacyjne są przechowywane w systemie plików, więc następnym razem, gdy uruchomisz przykładowy kod, nie pojawi się prośba o autoryzację.

Dalsze kroki