Краткое руководство по Node.js

Создайте приложение командной строки Node.js, которое будет отправлять запросы к API Google Календаря.

В руководствах по быстрому запуску объясняется, как настроить и запустить приложение, которое обращается к API Google Workspace. В этом руководстве используется упрощенный подход к аутентификации, подходящий для тестовой среды. Для производственной среды мы рекомендуем изучить вопросы аутентификации и авторизации, прежде чем выбирать учетные данные доступа , подходящие для вашего приложения.

В этом кратком руководстве для обработки некоторых деталей процесса аутентификации и авторизации используются рекомендованные Google Workspace клиентские библиотеки API.

Цели

  • Set up your environment.
  • Установите клиентскую библиотеку.
  • Подготовьте образец.
  • Запустите образец.

Предварительные требования

Для запуска этого краткого руководства необходимы следующие предварительные условия:

  • Учетная запись Google с включенным Google Календарем.

Настройте свою среду

To complete this quickstart, set up your environment.

Включить API

Перед использованием API Google необходимо включить их в проекте Google Cloud. В одном проекте Google Cloud можно включить один или несколько API.

Если для выполнения этого краткого руководства вы используете новый проект Google Cloud, настройте экран согласия OAuth. Если вы уже выполнили этот шаг для своего проекта Cloud, перейдите к следующему разделу.

  1. В консоли Google API перейдите в > Платформа аутентификации Google > Брендинг .

    Перейти к разделу «Брендинг»

  2. Если вы уже настроили платформу Google Auth, вы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение о том, что платформа Google Auth еще не настроена , нажмите «Начать» :
    1. Under App Information , in App name , enter a name for the app.
    2. In User support email , choose a support email address where users can contact you if they have questions about their consent.
    3. Нажмите «Далее» .
    4. В разделе «Аудитория» выберите «Внутренняя» .
    5. Нажмите «Далее» .
    6. В поле «Контактная информация» укажите адрес электронной почты , на который вы сможете получать уведомления об изменениях в вашем проекте.
    7. Нажмите «Далее» .
    8. В разделе «Завершить» ознакомьтесь с Политикой использования пользовательских данных сервисов Google API и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных сервисов Google API» .
    9. Нажмите «Продолжить» .
    10. Нажмите «Создать» .
  3. На данный момент добавление областей действия можно пропустить. В будущем, при создании приложения для использования за пределами вашей организации Google Workspace, необходимо изменить тип пользователя на «Внешний» . Затем добавьте необходимые для вашего приложения области авторизации. Для получения дополнительной информации см. полное руководство по настройке согласия OAuth .

Авторизация учетных данных для настольного приложения

Для аутентификации конечных пользователей и доступа к пользовательским данным в вашем приложении необходимо создать один или несколько идентификаторов клиента OAuth 2.0. Идентификатор клиента используется для идентификации отдельного приложения на серверах OAuth Google. Если ваше приложение работает на нескольких платформах, необходимо создать отдельный идентификатор клиента для каждой платформы.
  1. В консоли Google Cloud перейдите в > Платформа аутентификации Google > Клиенты .

    Go to Clients

  2. Нажмите «Создать клиента» .
  3. Click Application type > Desktop app .
  4. In the Name field, type a name for the credential. This name is only shown in the Google Cloud Console.
  5. Нажмите «Создать» .

    The newly created credential appears under "OAuth 2.0 Client IDs."

  6. Save the downloaded JSON file as credentials.json , and move the file to your working directory.

Install the client library

  • Установите библиотеки с помощью npm:

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

Настройте образец

  1. В рабочей директории создайте файл с именем index.js .

  2. In the file, paste the following code:

    calendar/quickstart/index.js
    import path from 'node:path';
    import process from 'node:process';
    import {authenticate} from '@google-cloud/local-auth';
    import {google} from 'googleapis';
    
    // The scope for reading calendar events.
    const SCOPES = ['https://www.googleapis.com/auth/calendar.readonly'];
    // The path to the credentials file.
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Lists the next 10 events on the user's primary calendar.
     */
    async function listEvents() {
      // Authenticate with Google and get an authorized client.
      const auth = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
    
      // Create a new Calendar API client.
      const calendar = google.calendar({version: 'v3', auth});
      // Get the list of events.
      const result = await calendar.events.list({
        calendarId: 'primary',
        timeMin: new Date().toISOString(),
        maxResults: 10,
        singleEvents: true,
        orderBy: 'startTime',
      });
      const events = result.data.items;
      if (!events || events.length === 0) {
        console.log('No upcoming events found.');
        return;
      }
      console.log('Upcoming 10 events:');
    
      // Print the start time and summary of each event.
      for (const event of events) {
        const start = event.start?.dateTime ?? event.start?.date;
        console.log(`${start} - ${event.summary}`);
      }
    }
    
    await listEvents();

Run the sample

  1. В рабочей директории запустите пример:

    node .
    
  1. The first time you run the sample, it prompts you to authorize access:
    1. If you're not already signed in to your Google Account, sign in when prompted. If you're signed in to multiple accounts, select one account to use for authorization.
    2. Click Accept .

    Your Nodejs application runs and calls the Google Calendar API.

    Authorization information is stored in the file system, so the next time you run the sample code, you aren't prompted for authorization.

Следующие шаги