Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Login WebServices failed
#11
Hola @jvillegas.

Vale, para situarnos un poco, entiendo que la llamada al web serivces la haces desde un script PHP. Correcto? Tenemos la posibilidad de tener el ejemplo que estás utilizando? Si no es así, te paso un script muy sencillo para que intentes probar.

<?php
include_once('vtwsclib/Vtiger/WSClient.php');
$url = 'http://localhost/vtiger';

echo "<!DOCTYPE html>";
echo "<html>";
echo "<head>";
echo "<meta charset=\"UTF-8\" />";
echo "</head>";
echo "<body>";

// Init WS client
$wsClient = new Vtiger_WSClient($url);

// Login
display("doLogin('admin', 'key')");
if (!$wsClient->doLogin('admin', 'key')) {
die('Login error.');
}

echo "</body>";
echo "</html>";

function display($data) {
if (is_string($data)) {
echo "<p>{$data}</p>";
} else {
var_dump($data);
}
}

Este fichero lo tienes que ejecutar desde tu raíz. De esta forma podrás ver si el sistema realiza el login correctamente desde el Web Services.

Otra opción que tienes es utilizar el entorno coreBOSwsDevelopment. Desde aquí puedes hacer login contra el Web Services y realizar las llamadas que normalmente quieres implementar en otros entornos (Creación, Consultas, etc...)

Ya me dirás que tal te ha ido.

Saludos
Reply
#12
Saludos Jeo, kapsule y demás compañeros.

Si probé el script que me enviaste y este no es capas de conectarse al servicio.

Tengo dudas, este es una parte del código del archivo coreBOSConfig.php.

1. Se supone que cuando yo intento crear un incidente en cbmibew para que se guarde en corebos no lo hace, pregunto, en que tablas debe guardar el incidente?, noto que no apunta a ninguna tabla de corebos, supongo que hace referencia a los módulos, cuando hace este query => "select * from Contacts where lastname='$lastname';";

2. El servicio Web, no se esta conectando, con el usuario y generatedKey que le estoy enviando, lo que hace es que siempre genera un valor null y el código lo manda a la excepción como si fuera un error en la creación.

Señor Joe, pido por favor que me ayude para logar conectar el usuario y generatedKey al servicio, o me indique como hago para la conexión con el servicio.


Respuesta = {"success":false,"error":{"code":"AUTHENTICATION_REQUIRED","message":"Given user cannot be found"}}

Quedo atento y muchas gracias

//look if the person exists in Contacts module.
$query = "select * from Contacts where lastname='$lastname';";
$encodedParameters= urlencode($query);
$channel2 = curl_init();
curl_setopt($channel2, CURLOPT_URL, $endpointUrl."?operation=query&sessionName=".$sessionId."&query=".$encodedParameters);
curl_setopt($channel2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($channel2, CURLOPT_POST, false);
curl_setopt($channel2, CURLOPT_CONNECTTIMEOUT, 100);
curl_setopt($channel2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($channel2, CURLOPT_TIMEOUT, 1000);
$response2 = curl_exec($channel2);
$jsonResponse2 = json_decode($response2,true);
$valore=$jsonResponse2['result'][0]['id'];

if($valore==NULL){ => siempre es NULL, NO LOGRA CONEXIÓN
//if the person does not exists, create the record
$contactvalues = array('assigned_user_id' => $userId,'lastname'=> $lastname, 'firstname'=> $firstname, 'phone'=> '--', 'email'=> $email2);
$encodedParameters=json_encode($contactvalues,true);
$params = array("sessionName"=>$sessionId, "operation"=>'create',"element"=>$encodedParameters, "elementType"=>"Contacts");
$channel3 = curl_init();
curl_setopt($channel3, CURLOPT_URL, $endpointUrl);
curl_setopt($channel3, CURLOPT_RETURNTRANSFER, true);
curl_setopt($channel3, CURLOPT_POST, true);
curl_setopt($channel3, CURLOPT_POSTFIELDS,$params );
curl_setopt($channel3, CURLOPT_CONNECTTIMEOUT, 100);
curl_setopt($channel3, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($channel3, CURLOPT_TIMEOUT, 1000);
$response3 = curl_exec($channel3);
$jsonResponse3 = json_decode($response3,true);

//this query gets the id of the created record so we can create Potentials or HelpDesk records related with Contacts
$query = "select * from Contacts where lastname='$lastname';";
$encodedParameters= urlencode($query);
$channel4 = curl_init();
curl_setopt($channel4, CURLOPT_URL, $endpointUrl."?operation=query&sessionName=".$sessionId."&query=".$encodedParameters);
curl_setopt($channel4, CURLOPT_RETURNTRANSFER, true);
curl_setopt($channel4, CURLOPT_POST, false);
curl_setopt($channel4, CURLOPT_CONNECTTIMEOUT, 100);
curl_setopt($channel4, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($channel4, CURLOPT_TIMEOUT, 1000);
$response4 = curl_exec($channel4);
$jsonResponse4 = json_decode($response4,true);
$valore1=$jsonResponse4['result'][0]['id'];

if($module1=='HelpDesk'){
//if we choose HelpDesk module, we create a new record
$contactvalues = array('assigned_user_id' => $userId,'ticket_title'=>$subject,'parent_id'=>$valore1,'ticketstatus'=>'Open','description'=>$conversation);
$encodedParameters=json_encode($contactvalues,true);
$params = array("sessionName"=>$sessionId, "operation"=>'create',"element"=>$encodedParameters, "elementType"=>'HelpDesk');
$channel5 = curl_init();
curl_setopt($channel5, CURLOPT_URL, $endpointUrl);
curl_setopt($channel5, CURLOPT_RETURNTRANSFER, true);
curl_setopt($channel5, CURLOPT_POST, true);
curl_setopt($channel5, CURLOPT_POSTFIELDS,$params );
curl_setopt($channel5, CURLOPT_CONNECTTIMEOUT, 100);
curl_setopt($channel5, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($channel5, CURLOPT_TIMEOUT, 1000);
$response5 = curl_exec($channel5);
$jsonResponse5 = json_decode($response5,true);
if ($jsonResponse5['success'] == true) {
$page['threadInfo'] = $thread->userName." was created successfully at Trouble Tickets (HelpDesk module)";
}
else{
$page['threadInfo'] = "Error!".$thread->userName." was not created";
}
}
Reply
#13
Julio, acabo de editar tu post y he eliminado la URL de acceso.
Con esa información que has puesto ahí, le has dado pleno acceso a TODOS tus datos a cualquier que se pase por aquí.
He arrancado mi instalación de coreBOSWSDevelopment Tool, he introducido los datos y he accedido a tu aplicación via webservice, a TODOS tus datos.
Por favor, accede inmediatamente a tu instalación y cambia la contraseña del usuario admin, antes de hacerlo, mira el valor del Access Key y asegúrate que cambia al cambiar la contraseña.

Lo bueno, es que he comprobado que tu acceso webservice funciona correctamente, así que el problema que tienes ha de estar en la extensión o la manera en la que esta se conecta. El usuario, access key y URL son correctas y están funcionando.

La información tiene que ir a la tabla de Incidencias, vtiger_troubletickets (o algo asi)

No puedo ayudar más ya que para ello tendría que instalar un MiBew y probar, no tengo tiempo para ello. Si quieres que alguien de mi equipo se conecte a tu instalación y veirifique lo que está pasando manda un correo a info@tsolucio.com y te pasarán presupuesto de una incidencia. Si no, sigue insistiendo y preguntando, lo primero es superar ese error de conexión, si no conecta no puede hacer nada más.
Joe
TSolucio
Reply


Forum Jump:


Users browsing this thread: