TrainHeartX commited on
Commit
11c7767
verified
1 Parent(s): 9d1cd95

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -2
app.py CHANGED
@@ -1,13 +1,33 @@
1
  import gradio as gr
2
  import comunicacion_gmail
3
  import json
 
4
 
5
  def gmail_interface(accion, parametros):
6
  """Funci贸n que llama a gmail_tool y formatea la respuesta."""
7
  try:
8
- parametros = json.loads(parametros) # Convierte la cadena JSON a un diccionario
 
 
 
 
9
 
10
- resultado = comunicacion_gmail.gmail_tool(accion, parametros)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  if "requires_auth" in resultado and resultado["requires_auth"]:
13
  auth_url = resultado["auth_url"]
 
1
  import gradio as gr
2
  import comunicacion_gmail
3
  import json
4
+ from urllib.parse import urlparse, parse_qs
5
 
6
  def gmail_interface(accion, parametros):
7
  """Funci贸n que llama a gmail_tool y formatea la respuesta."""
8
  try:
9
+ if parametros: # Si hay par谩metros, verifica si contiene el auth_code
10
+ try:
11
+ parametros = json.loads(parametros) # Convierte la cadena JSON a un diccionario
12
+ except json.JSONDecodeError:
13
+ return "Error: Par谩metros JSON inv谩lidos."
14
 
15
+ auth_code = parametros.get("auth_code")
16
+ if auth_code:
17
+ # Completar el flujo OAuth con el auth_code
18
+ flow = InstalledAppFlow.from_client_secrets_file(
19
+ 'credentials.json', comunicacion_gmail.SCOPES) # Accede a SCOPES desde comunicacion_gmail
20
+ flow.fetch_token(code=auth_code)
21
+ creds = flow.credentials
22
+ with open('token.pickle', 'wb') as token:
23
+ pickle.dump(creds, token)
24
+ # Vuelve a llamar a gmail_tool para ejecutar la acci贸n original (sin el auth_code)
25
+ del parametros["auth_code"] # Eliminar auth_code antes de la siguiente llamada
26
+ resultado = comunicacion_gmail.gmail_tool(accion, parametros)
27
+ else:
28
+ resultado = comunicacion_gmail.gmail_tool(accion, parametros)
29
+ else: # Si no hay par谩metros, llama a gmail_tool
30
+ resultado = comunicacion_gmail.gmail_tool(accion, parametros)
31
 
32
  if "requires_auth" in resultado and resultado["requires_auth"]:
33
  auth_url = resultado["auth_url"]