|
|
|
import os, pickle |
|
from google_auth_oauthlib.flow import InstalledAppFlow |
|
from google.auth.transport.requests import Request |
|
|
|
SCOPES = [ |
|
'https://www.googleapis.com/auth/calendar', |
|
'https://www.googleapis.com/auth/gmail.readonly', |
|
'https://www.googleapis.com/auth/gmail.send' |
|
] |
|
|
|
def authenticate_google_services(): |
|
os.system(f"gdown https://drive.google.com/uc?id=1EVsYlH4LRx4fDcllwfyijJYv6rexUTzR -O client_secret.json") |
|
creds = None |
|
if os.path.exists('token.pkl'): |
|
with open('token.pkl', 'rb') as token: |
|
creds = pickle.load(token) |
|
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('client_secret.json', SCOPES) |
|
creds = flow.run_console() |
|
with open('token.pkl', 'wb') as token: |
|
pickle.dump(creds, token) |
|
return creds |
|
|