Krótkie wprowadzenie do Node.js

Krótkie wprowadzenie wyjaśniają, jak skonfigurować i uruchomić aplikację, która wywołuje interfejs Google Workspace API.

Krótkie wprowadzenia do Google Workspace wykorzystują biblioteki klienta API do obsługi niektórych szczegółów procesu uwierzytelniania i autoryzacji. Zalecamy używanie bibliotek klienta dla własnych aplikacji. Przed uruchomieniem przykładowej aplikacji każde krótkie wprowadzenie wymaga włączenia uwierzytelniania i autoryzacji. Jeśli nie wiesz, jak uwierzytelnić i autoryzować interfejsy API Google Workspace, przeczytaj artykuł Omówienie uwierzytelniania i autoryzacji.

utworzyć aplikację wiersza poleceń Node.js, która wysyła żądania do interfejsu Google Drive API.

Cele

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

Wymagania wstępne

Aby uruchomić to krótkie wprowadzenie, musisz mieć te warunki wstępne:

  • konto Google z włączonym Dyskiem Google,

Konfigurowanie środowiska

Aby dokończyć ten krótki przewodnik, skonfiguruj środowisko.

Włącz API

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

Autoryzowanie danych logowania do aplikacji komputerowej

Aby uwierzytelnić się jako użytkownik końcowy i uzyskać dostęp do danych użytkownika w aplikacji, musisz utworzyć co najmniej 1 identyfikator klienta OAuth 2.0. Identyfikator klienta służy do identyfikowania jednej aplikacji na serwerach OAuth Google. Jeśli aplikacja działa na wielu platformach, musisz utworzyć oddzielny identyfikator klienta dla każdej z nich.
  1. W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Dane logowania.

    Otwórz stronę Dane logowania

  2. Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
  3. Kliknij Typ aplikacji > Aplikacja komputerowa.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
  5. Kliknij Utwórz. Pojawi się ekran utworzony przez klienta OAuth zawierający nowy identyfikator klienta i tajny klucz 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.

Instalowanie biblioteki klienta

  • Zainstaluj biblioteki przy użyciu npm:

    npm install googleapis@105 @google-cloud/local-auth@2.1.0 --save
    

Skonfiguruj próbkę

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

  2. Wklej do pliku ten kod:

    drive/quickstart/index.js
    const fs = require('fs').promises;
    const path = require('path');
    const process = require('process');
    const {authenticate} = require('@google-cloud/local-auth');
    const {google} = require('googleapis');
    
    // If modifying these scopes, delete token.json.
    const SCOPES = ['https://www.googleapis.com/auth/drive.metadata.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 google.auth.fromJSON(credentials);
      } catch (err) {
        return null;
      }
    }
    
    /**
     * Serializes credentials to a file comptible 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.
     *
     */
    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 the names and IDs of up to 10 files.
     * @param {OAuth2Client} authClient An authorized OAuth2 client.
     */
    async function listFiles(authClient) {
      const drive = google.drive({version: 'v3', auth: authClient});
      const res = await drive.files.list({
        pageSize: 10,
        fields: 'nextPageToken, files(id, name)',
      });
      const files = res.data.files;
      if (files.length === 0) {
        console.log('No files found.');
        return;
      }
    
      console.log('Files:');
      files.map((file) => {
        console.log(`${file.name} (${file.id})`);
      });
    }
    
    authorize().then(listFiles).catch(console.error);

Uruchom przykład

  1. W katalogu roboczym uruchom przykładowy kod:

    node .
    
  2. Przy pierwszym uruchomieniu próbki pojawi się prośba o autoryzację dostępu:

    1. Jeśli nie zalogowano się na konto Google, pojawi się prośba o zalogowanie. Jeśli logujesz się na wiele kont, wybierz to, którego chcesz użyć do autoryzacji.
    2. Kliknij Accept (Zaakceptuj).

    Informacje o autoryzacji są przechowywane w systemie plików, więc przy następnym uruchomieniu przykładowego kodu nie pojawi się prośba o autoryzację.

Udało Ci się utworzyć pierwszą aplikację Nodejs, która wysyła żądania do interfejsu Google Drive API.

Dalsze kroki