Как подавить вывод потока API Google calender на Python3

#python-3.x #google-calendar-api #gnome-terminal

#python-3.x #google-calendar-api #gnome-терминал

Вопрос:

Я хотел бы знать, как подавить вывод Google flow, чтобы сделать мой вывод более чистым.

Вот Quickstart.py код:

     creds =None
    if os.path.exists('token.pickle'):
        first_time_login = False
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)


    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        first_time_login = True
        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.pickle', 'wb') as token:
            pickle.dump(creds, token)
    # Building the resource Calendar
    service = build('calendar', 'v3', credentials=creds)
 

Когда вы запускаете этот код, вы получаете следующий вывод на терминале:

Пожалуйста, посетите этот URL-адрес, чтобы авторизовать это приложение: https://accounts.google.com/o/oauth2/auth?response_type=codeamp;client_id=504506216880-4sanqellgo5ovampvrngut6q4e4pr09a.apps.googleusercontent.comamp;redirect_uri=http://localhost:46171/amp;scope=https://www.googleapis.com/auth/calendaramp;state=J7Id4IqIKyER5hykiGhfRcL9HZVejsamp;access_type=offline

Я хочу, чтобы при запуске приведенного выше кода вообще не было вывода.

Пожалуйста, получите quickstart.py в Google calender API или перейдите по этой ссылке, если это поможет:

https://developers.google.com/calendar/quickstart/python

Комментарии:

1. Я рекомендую вам ознакомиться с руководствами по API Google, если вы их еще не проходили.

2. что вы подразумеваете под подавлением вывода Google flow?

3. Да, я имею в виду вывод потока Google

4. Вам удалось это сделать? Есть ли какие-либо обновления на нем?

5. Я пытался использовать: import sys import io #Вы подавляете здесь: suppress_text = io.StringIO() sys.stdout = suppress_text

Ответ №1:

Это невозможно сделать, поскольку поток авторизации в быстром запуске предназначен для приложения командной строки, как указано в примечаниях к быстрому запуску:

Поток авторизации в этом примере предназначен для приложения командной строки. Для получения информации о том, как выполнить авторизацию в веб-приложении, см. раздел Использование OAuth 2.0 для приложений веб-сервера.

Комментарии:

1. Лучшее решение для этого — отключить вывод для этого конкретного раздела кода, тогда он просто запустится для проверки учетной записи Google OAuth 2.0 в вашем браузере без распечатки accounts.google.com/o/oauth2 /…