Краткое руководство по Python

Создайте приложение командной строки на Python, которое отправляет запросы к Directory API.

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

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

Цели

  • Настройте среду.
  • Установите клиентскую библиотеку.
  • Настройте образец.
  • Запустите пример.

Требования

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

  • Python 3.10.7 или более поздней версии;
  • Инструмент управления пакетами pip.
  • Проект Google Cloud.

Как настроить среду

Чтобы выполнить инструкции из этого руководства, настройте среду.

Включение API

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

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

  1. В консоли API Google нажмите на значок меню > Платформа аутентификации Google > Брендинг.

    Перейти к брендингу

  2. Если вы уже настроили платформу Google Auth, то можете задать следующие настройки окна запроса доступа OAuth: Фирменное оформление, Аудитория и Доступ к данным. Если вы видите сообщение Google Auth platform not configured yet (Платформа Google Auth ещё не настроена), нажмите Get Started (Начать):
    1. В разделе Информация о приложении в поле Название приложения введите название приложения.
    2. В поле Электронный адрес службы поддержки укажите адрес, по которому пользователи смогут обращаться с вопросами о согласии.
    3. Нажмите Далее.
    4. В разделе Аудитория выберите Внутреннее.
    5. Нажмите Далее.
    6. В разделе Контактная информация укажите адрес электронной почты, на который вы хотите получать уведомления об изменениях в проекте.
    7. Нажмите Далее.
    8. В разделе Завершение ознакомьтесь с Правилами в отношении пользовательских данных сервисов API Google и, если вы согласны с ними, выберите Я принимаю Правила в отношении пользовательских данных сервисов API Google.
    9. Нажмите Продолжить.
    10. Нажмите Создать.
  3. Пока вы можете пропустить добавление областей действия. В будущем, когда вы будете создавать приложение для использования за пределами организации Google Workspace, вам нужно будет изменить Тип пользователя на Внешний. Затем добавьте области авторизации, необходимые вашему приложению. Подробную информацию вы найдете в руководстве по настройке запроса согласия OAuth.

Как авторизовать учетные данные для компьютерного приложения

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

    Перейти в раздел "Клиенты"

  2. Нажмите Create Client (Создать клиента).
  3. Нажмите Тип приложения > Компьютерное приложение.
  4. В поле Название введите название учетных данных. Это название показывается только в консоли Google Cloud.
  5. Если ваше приложение – это ИИ-агент, который выполняет действия от имени пользователей, выберите Использовать этот клиент для агента на основе ИИ. Если ваше приложение поддерживает как рабочие процессы ИИ-агента, так и стандартные функции, создайте отдельные клиенты OAuth для каждого из них. После создания клиента изменить эту настройку нельзя.
  6. Нажмите Создать.

    Созданные учетные данные появятся в разделе "Идентификаторы клиентов OAuth 2.0".

  7. Сохраните скачанный JSON-файл как credentials.json и переместите его в рабочий каталог.

Как установить клиентскую библиотеку Google

  • Установите клиентскую библиотеку Google для Python:

    python3 -m pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
    

Настройте пример

  1. В рабочем каталоге создайте файл с названием quickstart.py.
  2. Добавьте в quickstart.py следующий код:

    admin_sdk/directory/quickstart.py
    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ["https://www.googleapis.com/auth/admin.directory.user"]
    
    
    def main():
      """Shows basic usage of the Admin SDK Directory API.
      Prints the emails and names of the first 10 users in the domain.
      """
      creds = None
      # 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.
      if os.path.exists("token.json"):
        creds = Credentials.from_authorized_user_file("token.json", SCOPES)
      # If there are no (valid) credentials available, let the user log in.
      if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
          creds.refresh(Request())
        else:
          flow = InstalledAppFlow.from_client_secrets_file(
              "credentials.json", SCOPES
          )
          creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open("token.json", "w") as token:
          token.write(creds.to_json())
    
      service = build("admin", "directory_v1", credentials=creds)
    
      # Call the Admin SDK Directory API
      print("Getting the first 10 users in the domain")
      results = (
          service.users()
          .list(customer="my_customer", maxResults=10, orderBy="email")
          .execute()
      )
      users = results.get("users", [])
    
      if not users:
        print("No users in the domain.")
      else:
        print("Users:")
        for user in users:
          print(f"{user['primaryEmail']} ({user['name']['fullName']})")
    
    
    if __name__ == "__main__":
      main()

Запустите пример

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

    python3 quickstart.py
    
  1. При первом запуске примера вам будет предложено авторизовать доступ:
    1. Если вы ещё не вошли в аккаунт Google, сделайте это. Если вы вошли в несколько аккаунтов, выберите один из них для авторизации.
    2. Нажмите Принимаю.

    Ваше приложение на Python запускается и вызывает Directory API.

    Информация об авторизации хранится в файловой системе, поэтому при следующем запуске образца кода вам не нужно будет проходить авторизацию.

Дальнейшие действия