Integracion Web Services

Para la conexión por web services, primero entra al CRM para obtener la clave de acceso del usuario con el que se vaya hacer la conexión.

Para encontrarla vas a mis preferencias… y posteriormente bajas hasta la clave de acceso…

Estos datos los necesitaras para poder acceder al CRM desde los servicios web. A continuación definiremos el procedimiento para ingresar y así poder acceder a las demás funciones del los servicios web.

Este ejemplo esta desarrollado en lenguaje PHP y requiere de CURL para su ejecución.

$crm = “https://www.datacrm.la/datacrm/datacrm”; //URL del CRM
$user = “admin”; // Usuario de conexión
$userAccessKey = “mU8RE6HY3JprKWuO”; Clave de acceso

Con estas variables hay que obtener un token necesario para su autenticación para esto se llama la operación “getchallenge” mediante un método get que recibe como parámetro el nombre de usuario, ademas del nombre de la operación.

//getToken
$url = $crm.”?operation=getchallenge&username=”.$user;
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$getToken = json_decode($result);
$challengeToken = $getToken->result->token;
//el token generado se encripta junto con la clave de acceso en mediante el algoritmo md5
$generatedKey = md5($challengeToken.$userAccessKey);
//print_r($generatedKey);

Para la autenticación se llama la operación “login” mediante un método post que recibe la llave generada en md5 además de la operación

$operation = “login”;
$post = “operation=”.$operation.”&username=”.$user.”&accessKey=”.$generatedKey;
$url = $crm;
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$login = json_decode($result);

Obtenemos la variable sesion requerida para usar los otros métodos de los web services

$session_id = $login->result->sessionName;
$user_id = $login->result->userId;
//print_r($user_id);

Describiremos algunos métodos útiles de la conexión:

Listtypes: Lista los módulos disponibles para el usuario

echo “<br>—–modulos visibles para el usuario—-<br>”;
$get = “?operation=listtypes&sessionName=”.$session_id;
$url = $crm.$get;
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$getModules = json_decode($result);
//IMPRIME LOS MODULOS VISIBLES POR EL USUARIO
echo”<pre>”;
print_r($getModules->result->types);
echo”</pre>”;

Describe: describe los campos de un modulo. Este es un ejemplo para consultar los campos obligatorios en el modulo cuentas

echo “<br>—-describe (campos obligatorios)—–<br>”;
$operation = “describe”;
$module = “Accounts”;
$get = “?operation=”.$operation.”&sessionName=”.$session_id.”&elementType=”.$module;
$url = $crm.$get;
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$getModules = json_decode($result);

//IMPRIME LOS CAMPOS OBLIGATORIOS
$numModules =count($getModules->result->fields);
$mandatory = array();
for ($i=0;$i<=$numModules;$i++){
if($getModules->result->fields[$i]->mandatory){
print_r($getModules->result->fields[$i]->name);
$mandatory[$getModules->result->fields[$i]->name] = “”;;
}
}
print_r($mandatory);

A continuación haremos un ejemplo de creación de un cliente, un contacto y un negocio relacionado entre ellos mediante web services.

Creación del cliente, se asume solo los campos obligatorios “nombre de cliente(accountname)” y “asigado a(assigned_user_id)”

echo “<br>—-crear cuenta—–<br>”;
$operation = “create”;
$module = “Accounts”;
$accountData = array(‘accountname’=>’webservices’,’assigned_user_id’=>’19×1′);
//$accountData = $mandatory;
$jsonData = json_encode($accountData);
//print_r($jsonData);
$post = “operation=”.$operation.”&sessionName=”.$session_id.”&elementType=”.$module.”&element=”.$jsonData;
print_r($post);
//print_r($jsonData);
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$response = json_decode($result);
/*echo”<pre>”;
print_r($response);
echo”</pre>”;*/
echo “id de la cuenta creada “;
$idaccount = $response->result->id;
//print_r($idaccount);

“$idaccount” tendrá el numero de cuenta para que al crear el contacto se relacione a esta cuenta recién creada.

Creación de contacto, asumimos los campos obligatorios “apellidos (lastname)” y “asignado a(assigned_user_id)” adicionalmente llenara el cliente asociado(idaccount).

echo “<br>—-crear contacto asociado—–<br>”;
$operation = “create”;
$module = “Contacts”;
$data = array(‘lastname’=>’webservices’,’assigned_user_id’=>’19×1′, ‘account_id’=>$idaccount);
$jsonData = json_encode($data);
$post = “operation=”.$operation.”&sessionName=”.$session_id.”&elementType=”.$module.”&element=”.$jsonData;
print_r($post);
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$response = json_decode($result);
//echo “id del contacto creado “;
$idcontact = $response->result->id;
//print_r($idcontact);

“$idcontact” tendrá el numero de contacto para que al crear el negocio se relacione a este contacto recién creado.

Creación de negocio, asumimos los campos obligatorios “nombre de oportunidad (potentialname)”, “asignado a(assigned_user_id)”, “fase de venta (sales_stage)”, “fecha estimada de cierre(closingdate),” y “origen de prospecto (leadsource), adicionalmente llenara el cliente asociado(related_to) y el contacto asociado (contact_id) .

echo “<br>—-crear negocio asociado—–<br>”;
$operation = “create”;
$module = “Potentials”;
$data = array(‘potentialname’=>’webservices’,’assigned_user_id’=>’19×1′,’related_to’=>$idaccount,’contact_id’=>$idcontact,’closingdate’=>’2015-07-21′,’sales_stage’=>’Facturado’, ‘leadsource’=>’Other”);
$jsonData = json_encode($data);
$post = “operation=”.$operation.”&sessionName=”.$session_id.”&elementType=”.
$curl = curl_init();//peticion
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);//fin peticion
$response = json_decode($result);
print_r($response->result->id);

Esperamos que este articulo haya sido de gran ayuda para ti. ¡Gracias por tu visita!

results matching ""

    No results matching ""