diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/gmail_helpers.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/python/gmail_helpers.py b/python/gmail_helpers.py index d9557b3b..67ca81ec 100644 --- a/python/gmail_helpers.py +++ b/python/gmail_helpers.py @@ -1,8 +1,9 @@ from apiclient.discovery import build from apiclient import errors from email.message import EmailMessage -from httplib2 import Http -from oauth2client import client, tools +from google.oauth2.credentials import Credentials +from google_auth_oauthlib.flow import InstalledAppFlow + import argparse import base64 import email @@ -10,7 +11,7 @@ import json import oauth2client import os -SCOPES = 'https://www.googleapis.com/auth/gmail.modify' +SCOPES = ['https://www.googleapis.com/auth/gmail.modify'] CLIENT_SECRET_FILE = 'secret.json' APPLICATION_NAME = 'Swaptions' @@ -29,15 +30,17 @@ def get_gmail_service(): credential_path = os.path.join(credential_dir, 'guillaume.horel@serenitascapital.com.json') - store = oauth2client.file.Storage(credential_path) - credentials = store.get() - if not credentials or credentials.invalid: - flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() - flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) - flow.user_agent = APPLICATION_NAME - credentials = tools.run_flow(flow, store, flags) - print('Storing credentials to ' + credential_path) - service = build('gmail', 'v1', http=credentials.authorize(Http())) + try: + credentials = Credentials.from_authorized_user_file(credential_path) + except: + flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES) + credentials = flow.run_console() + to_save= {} + for attr in ["token", "refresh_token", "id_token", "token_uri", "client_id", "client_secret", "scopes"]: + to_save[attr] = getattr(credentials, attr) + with open(credential_path, "w") as fh: + json.dump(to_save, fh) + service = build('gmail', 'v1', credentials=credentials) return service def ListMessagesWithLabels(service, user_id, label_ids=[]): |
