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

Создайте консольное приложение на Python, которое будет отправлять запросы к API Google Apps Script.

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

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

Цели

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

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

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

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

  • Учетная запись Google с активированным Google Диском.

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

Для завершения этого краткого руководства настройте свою среду.

Включить API

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

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

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

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

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

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

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

    Перейти к клиентам

  2. Нажмите «Создать клиента» .
  3. Выберите «Тип приложения» > «Настольное приложение» .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google API.
  5. Нажмите «Создать» .

    Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".

  6. Сохраните загруженный 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 :

    apps_script/quickstart/quickstart.py
    """
    Shows basic usage of the Apps Script API.
    Call the Apps Script API to create a new script project, upload a file to the
    project, and log the script's URL to the user.
    """
    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 import errors
    from googleapiclient.discovery import build
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ["https://www.googleapis.com/auth/script.projects"]
    
    SAMPLE_CODE = """
    function helloWorld() {
      console.log("Hello, world!");
    }
    """.strip()
    
    SAMPLE_MANIFEST = """
    {
      "timeZone": "America/New_York",
      "exceptionLogging": "CLOUD"
    }
    """.strip()
    
    
    def main():
      """Calls the Apps Script API."""
      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())
    
      try:
        service = build("script", "v1", credentials=creds)
    
        # Call the Apps Script API
        # Create a new project
        request = {"title": "My Script"}
        response = service.projects().create(body=request).execute()
    
        # Upload two files to the project
        request = {
            "files": [
                {"name": "hello", "type": "SERVER_JS", "source": SAMPLE_CODE},
                {
                    "name": "appsscript",
                    "type": "JSON",
                    "source": SAMPLE_MANIFEST,
                },
            ]
        }
        response = (
            service.projects()
            .updateContent(body=request, scriptId=response["scriptId"])
            .execute()
        )
        print("https://script.google.com/d/" + response["scriptId"] + "/edit")
      except errors.HttpError as error:
        # The API encountered a problem.
        print(error.content)
    
    
    if __name__ == "__main__":
      main()

Запустите образец

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

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

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

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

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