Discussions

Ask a Question
Back to All

Integración con Property Importer vía CURL

Hola, buenos días, mi nombre es Jerónimo, pertenezco a la parte de sistemas de Dinamic Studio.

Estamos desarrollando para la web de uno de nuestros clientes la vinculación entre el sitio web y el Property Importer.

Nos encontramos que no podemos lograr conectarnos al servicio. Actualmente nos devuelve un error 405.
Utilizamos las liberias de CURL en PHP basándonos en la documentación facilitada aquí (https://developers.tokkobroker.com/docs/reporters)

Adjunto el código desarrollado, el status y algunos comentarios al respecto abajo.

$ch = curl_init('http://tokkobroker.com/property_importer/');

//header
$headers = array(
'authorization: 5940ea45eb7cfb55228bec0b958ea9c0be151757',
'Content-Type: application/json',
'Location: http://tokkobroker.com/property_importer/',
);

//data
$data = array(
'url' => 'https://www.mapropiedades.com.ar/modules/export_tokko/files/file.xml',
'callback_url' => 'https://www.mapropiedades.com.ar/modules/export_tokko/'
);

$data = json_encode( $data);

//flag to curl POST
curl_setopt($ch, CURLOPT_POST, $data);

//attach encoded JSON string to the POST fields
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

//set the header
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

//return response instead of outputting
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//follow location
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

//debug header
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);

//execute the POST request
$result = curl_exec($ch);

//get status
$status = curl_getinfo($ch);

echo"

";print_r($status);die();

El curl_getinfo nos devuelve lo siguiente:

Array
(
[url] => https://www.tokkobroker.com/property_importer/
[content_type] => text/html; charset=utf-8
[http_code] => 405
[header_size] => 2801
[request_size] => 719
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 2
[total_time] => 0.432341
[namelookup_time] => 0.004097
[connect_time] => 0.011128
[pretransfer_time] => 0.123885
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0.245484
[redirect_time] => 0.186845
[redirect_url] =>
[primary_ip] => 172.67.72.170
[certinfo] => Array
(
)

[primary_port] => 443
[local_ip] => 23.92.68.218
[local_port] => 50796
[request_header] => GET /property_importer/ HTTP/1.1

Host: www.tokkobroker.com
Accept: /
Content-Type: application/json
Location: http://tokkobroker.com/property_importer/

)

  • La documentación especifica que la integración debe hacerse por POST, pero en todo los casos la cabecera se envía con GET, a menos que no especifiquemos en el CURL que sea por POST, o no le demos ningún dato a CURLOPT_POSTFIELDS .
  • También, si no se especifica la bandera CURLOPT_FOLLOWLOCATION devuelve un redirect 301. Ahí funciona el método POST pero no obtenemos ningún tipo de resultado de parte del callback_url.
  • A través de unos correos que intercambiamos con nuestro asesor de Tokko, nos indicó que en valor del header "autorization" se puede usar el api key de prueba que esta definida. Lo comento mas que nada pero no creo que tenga influencia sobre la situación.

Y eso de momento, queríamos saber si podíamos estar teniendo algún tipo de falla en la implementación o que podría estar sucediendo.

Muchas gracias, un saludo!.