API
Vea las diferentes posibilidades que le brinda nuestra API para integrar a uContact con sistemas externos.
Para poder usar la API se necesita.
Autenticarse y obtener un token para la sesión.
Usar el token en el Header Authorization.
Finalizar sesión.
Se recomienda crear un usuario que sea exclusivamente para utilizar con la API de uContact.
En primer lugar, debemos obtener APIkey. Para ello utilizamos el servicio getUserToken con un usuario y contraseña de SuperUser válidos.
Servicio getUserToken
1
2
3
4
5
6
https://dominio.ucontactcloud.com/Integra/resources/auth/getUserToken
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros: user
password
Resultado: JSON
Supervisor sin teléfono
Al final de la lista
1
2
3
4
5
[ ...
"QWRtaW46OTgzNWM1MjUtMzU2Ny00YjgyLWEwYWYtY2NkMjNlMDhjNzA3"
]
Si es Error Respuesta 0
Código de ejemplo para jQuery
1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
type: 'POST',
url: 'https://dominio.ucontactcloud.com/Integra/resources/auth/getUserToken',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
dataType: 'text',
data: {
user: 'ExampleUsername',
password: 'ExamplePassword'
},
success: (resp) => {},
error: (resp) => {}
});
Una vez que tiene su token de inicio de sesión,
pasaremos a ver como utilizarlo en las consultas a la API:
Se puede configurar jQuery para que use el token en cada petición.
Si no, se puede especificar en los headers en cada petición que se haga.
Ejemplo de configuración de jQuery
1
2
3
4
5
$.ajaxSetup({
headers: {
'Authorization': "Basic " + APIKey
}
});
Ejemplo de token en headers de peticiones
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.ajax({
type: 'POST',
url: 'https://dominio.ucontactcloud.com/Integra/resources/any/request',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
dataType: 'text',
headers:{
'Authorization': 'Basic <APIKey>'
},
data: {
param1: 'exampleParam1',
param2: 'exampleParam2'
},
success: (resp) => {},
error: (resp) => {}
});
Luego de utilizar la API es necesario finalizar la sesión.
De esta manera evitaremos problemas de seguridad inhabilitando el token generado en el login del inicio.
Método
1
2
3
4
5
6
https://dominio.ucontactcloud.com/Integra/resources/auth/EndSession
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params: user
token
Result: 1 OK 0 ERROR
Código de ejemplo para jQuery
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.ajax({
type: 'POST',
url: 'https://dominio.ucontactcloud.com/Integra/resources/auth/EndSession',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
dataType: 'text',
headers:{
'Authorization': 'Basic <APIKey>'
},
data: {
user: 'ExampleUser',
token: '<token>'
},
success: (resp) => {},
error: (resp) => {}
});
Información relevante
Todos los WebServices son de tipo REST
uContact usa https por defecto (http2)
Conexión CrossDomain
Con el Windows proxy podemos manejar eventos de un iframe insertado en un formulario, para poder por ejemplo hacer tipificaciones, colgar la llamada, cerrar el formulario o cualquier cosa que se desee.
Para realizar esto no se necesita ningún plugin.
Pasos previos
En el formulario se debe poner:
1
2
3
4
5
6
7
8
window.addEventListener('message', event => {
if (event.data.action === 'CLOSE_TAB') {
parent.closeActiveTab();
} else if (event.data.action === 'DISPOSITION_CALL') {
let dataDisp = event.data.disposition;
UC_DispositionCall(dataDisp.campaign, dataDisp.callerid, dataDisp.guid, dataDisp.l1, dataDisp.l2, dataDisp.l3, dataDisp.d1, dataDisp.d2, dataDisp.comment, dataDisp.schedule, callbackDiposition, errorDiposition);
}
});
event.data se puede usar para identificar de qué tipo es la acción.
Y el atributo disposition se usa como un objeto para mandar más información.
¿Cómo invocarlo?
La manera de invocarlo es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let dataDisp = {
campaign: 'CampañaTest',
callerid: '123456Test',
guid:'3123-3123-3123-312-3123',
l1:'nivel1',
l2:'nivel2',
l3:'nivel3',
d1:'data1',
d2:'data2',
comment:'ComentarioTest',
schedule:'2019-05-04 15:55:55'
};
window.parent.postMessage({ action: 'DISPOSITION_CALL', disposition:dataDisp}, '*');
Links de interés
Colección de postman para el inicio y cierre de sesión.