Hola a todos,
Estoy tratando de conectarme con la API de UiPath utilizando Python, pero estoy encontrando algunos problemas con la autenticación. Aquí está lo que he hecho hasta ahora:
- Configuración en UiPath:
- He creado una aplicación externa en UiPath con los siguientes detalles:
Client ID:**
Client Secret:** - Las URLs que estoy utilizando son:
- Auth URL:**
https://cloud.uipath.com/identity_/connect/authorize
- Access Token URL:**
https://cloud.uipath.com/identity_/connect/token
- Scope:**
OR.Robots OR.Execution OR.Queues OR.Jobs OR.Folders OR.Tasks OR.Machines
- Auth URL:**
- En Postman, puedo obtener el token de acceso sin problemas utilizando estas configuraciones.
- Python:** Estoy utilizando el siguiente código para obtener un token de acceso y luego hacer una solicitud a un endpoint de UiPath:
Import requests
client_id = ‘xxx’
client_secret = ‘xxxx’
base_url = ‘https://cloud.uipath.com/’
token_url = f’{base_url}identity_/connect/token’
token_data = {
‘grant_type’: ‘client_credentials’,
‘client_id’: client_id,
‘client_secret’: client_secret,
}
try:
response = requests.post(token_url, data=token_data)
response.raise_for_status()
response_json = response.json()
access_token = response_json.get('access_token')
print(f'Token de acceso obtenido: {access_token}')
headers = {'Authorization': f'Bearer {access_token}'}
endpoint_url = 'provder/api/some_endpoint'
response = requests.get(f'{base_url}{endpoint_url}', headers=headers)
response.raise_for_status()
print(response.json())
except requests.exceptions.HTTPError as http_err:
print(f’Error HTTP: {http_err}‘)
print(f’Status Code: {response.status_code}’)
print(f’Respuesta completa: {response.text}‘) # Imprime la respuesta completa para depuración
except Exception as err:
print(f’Ocurrió un error: {err}’)
raise
Cuando ejecuto el código, recibo el siguiente error: Error HTTP: 400 Client Error: Bad Request for url: https://cloud.uipath.com/identity_/connect/token
Status Code: 400
Respuesta completa: {“error”:“unauthorized_client”}
He revisado varias veces el client_id
y el client_secret
, y ambos son correctos. También he verificado que los scopes y las URLs sean correctas. ¿Qué me está faltando o en qué estoy fallando?