Итак, мой вопрос, как открыть URL авторизации, не открывая
браузер? Я хочу, чтобы мой код автоматически авторизовался, не делая
вручную.
Если вы используете G Suite, вы можете создать учетную запись службы и разрешить делегирование по всему домену, чтобы принять личность пользователя G Suite. Это работает только для пользователей, которые являются частью вашего домена G Suite.
Если вы не используете G Suite, вы не сможете обойти экран аутентификации пользователя при первом входе пользователя на ваш сайт. После аутентификации пользователя с доступом offline
вы можете сохранить токен обновления для использования в будущем.
Аутентификация и Авторизация между клиентом (пользователем) и Аккаунтами Google. Ваше программное обеспечение не участвует в части учетных данных (имя пользователя, пароль и т. Д.). Пользователь должен предоставить разрешение на использование учетных записей Google, чтобы ваши службы могли получить доступ к идентификационной информации Google.
[ПРАВИТЬ 1/22/2019 - после вопроса о том, как сохранить токен обновления]
Следующий код с авторизацией и сохранением токена обновления:
# pip install google-auth-oauthlib
from google_auth_oauthlib.flow import InstalledAppFlow
# https://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.html
flow = InstalledAppFlow.from_client_secrets_file(
'client_secrets.json',
scopes=['https://www.googleapis.com/auth/cloud-platform'])
cred = flow.run_local_server(
host='localhost',
port=8088,
authorization_prompt_message='Please visit this URL: {url}',
success_message='The auth flow is complete; you may close this window.',
open_browser=True)
with open('refresh.token', 'w+') as f:
f.write(cred._refresh_token)
print('Refresh Token:', cred._refresh_token)
print('Saved Refresh Token to file: refresh.token')