скопировано с https://developers.google.com/identity/protocols/OAuth2InstalledApp
Шаг 3: Google запрашивает у пользователя согласие На этом шаге пользователь решает, следует ли предоставить вашему приложению запрошенный доступ.На этом этапе Google отображает окно согласия, в котором отображается название вашего приложения и сервисов API Google, для которых запрашивается разрешение на доступ с учетными данными авторизации пользователя.Затем пользователь может дать согласие или отказать в предоставлении доступа к вашему приложению.
На этом этапе вашему приложению не нужно ничего делать, так как он ожидает ответа от сервера Google OAuth 2.0, указывающего, был ли предоставлен доступ.Этот ответ объясняется на следующем шаге.
Где это важно:
На этом этапе Google отображает окно согласия, в котором отображается название вашей заявки иСлужбам Google API, для которых запрашивается разрешение на доступ с учетными данными авторизации пользователя.
Так что, по крайней мере, как я понимаю, то, что вы хотите сделать, не следует делать из соображений безопасности.Тем не менее: вы можете «симулировать» браузер тем, что у python есть библиотеки для этого.С другой стороны: как только вы получите токен авторизации, вы можете использовать его повторно вместо того, чтобы каждый раз запрашивать новый токен.Я не смог найти его в предоставленном документе на GitHub, но Java в качестве примера поддерживает сохранение полученного токена вместе с его токеном обновления, чтобы его можно было повторно использовать после получения и автоматического обновления.Возможно, python предоставляет какой-то способ хранения полученного токена (проверьте, содержит ли он токен обновления) и перезагрузите его.Также: если вы загружаете такой токен, сначала вам нужно обновить его перед использованием.Java предоставляет способ просто сохранить токен обновления вместо всего токена авторизации, который можно использовать в дальнейшем для автоматического получения нового токена авторизации.Поскольку ответом является JSON, возможно, вы могли бы создать его самостоятельно, если библиотека еще не предлагает этого.
// edit
В дополнение к https://github.com/googleapis/google-auth-library-python/blob/master/google/oauth2/credentials.py Есть методы для загрузкиобъект учетных данных либо из "информации об авторизованном пользователе" (которую я также где-то нашел, можно загрузить из файла), либо загрузить его непосредственно из файла.Итак, я думаю, вам просто нужно выяснить, как хранить токен.Как говорит doc для from_authorized_user_file:
Создает экземпляр Credentials из файла json авторизованного пользователя.
Я думаю, это означает, что вам просто нужно сохранить ответ токена, который вы получите послепервоначальное разрешение было сделано.