Saltar al contenido

API de Five9: cómo extraer informes utilizando la API SOAP y la autenticación básica

El tutorial o código que verás en este artículo es la resolución más fácil y efectiva que hallamos a tus dudas o problema.

Solución:

Sé que esta es una vieja pregunta, pero recientemente cambiamos a Five9 y no pude encontrar ningún ejemplo de PHP con el que trabajar. A continuación, se ilustra cómo conectarse con credenciales estándar y ejecutar la lista de llamadas. He incluido toda la estructura de criterios de selección (comentada) para su referencia. Si incluye una propiedad de selección, debe especificar los criterios correspondientes.

$soap = null;
$wsdl = "https://api.five9.com/wsadmin/v2/AdminWebService?wsdl";

$user = "yourloginid";
$pass = "yourpassword";

$soap_options = array("login" => $user, "password" => $pass);

$soap = new SoapClient($wsdl, $soap_options);

/* create the callLogReportCriteria data selection structure */
$arryParams['time']  = array("start" => "2013-05-05T00:00:01",
                             "end" => "2013-05-05T09:00:00");
$arryParams['criteria'] = array("callTypes" =>  array("INBOUND","OUTBOUND"));

/************ Entire Structure for selection criteria *************/
/*$arryParams['criteria'] = array("ANI" =>  "6178752803",
                                "Agents" => "",
                                "callTypes" =>  array("INBOUND","OUTBOUND"),
                                "campaigns" =>  "",
                                "dispositions" => "",
                                "Lists" =>  "",
                                "skillGroups" => ""
                               );*/

$result = $soap->getCallLogReport($arryParams);

if(isset($result->return->records)) 
    /* you have records returned */
    $objRecords = $result->return->records;

    for($i=0 ; $i < sizeof($objRecords) ; $i++) 
        /* do your processing */
        printf("ANI: %s
", $objRecords[$i]->values->data[3]); //4th element has ANI

Ciertas líneas de código podrían combinarse, pero por el bien de la comprensión las dividí. También querrá utilizar una prueba/captura alrededor de la llamada SOAP real para el manejo de errores.

Esperemos que esto ayude a acortar la curva de aprendizaje de alguien. ¡Sé que me hubiera encantado tener esto hace un mes!

Parece que su problema es que está enviando su nombre de usuario/contraseña codificados en base64 en el encabezado del jabón. En realidad, debe incluirse en el encabezado http. Mi solución está en Ruby, pero espero que pueda ayudarte.

soap_client = Savon.client(
  endpoint: "https://api.five9.com/wsadmin/AdminWebService/", 
  namespace: "http://service.admin.ws.five9.com/", 
  headers:  "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" , 
  env_namespace: :soapenv, 
  namespace_identifier: :ser, 
  ssl_verify_mode: :none
)

message =  
  "lookupCriteria" => 
"criteria" => 
      "field" => "email_address",
      "value" => "[email protected]"
    
  


response = soap_client.call(:getContactRecords, message: message)
p response.body

Entonces su XML termina luciendo así.

SOAP request: https://api.five9.com/wsadmin/AdminWebService/
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==, SOAPAction: "getContactRecords",
Content-Type: text/xml;charset=UTF-8, Content-Length: 471



  
    
      
        
          email_address
          [email protected]
        
      
    
  


HTTPI POST request to api.five9.com (httpclient)
SOAP response (status 200)


  
  
    
      
        number1
        email_address
        
          
            5555555555
            [email protected]
          
        
      
    
  

Aquí tienes las comentarios y calificaciones

Recuerda que puedes mostrar este artículo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *