Ciao a tutti. Sto cercando di dialogare
con le API di Google Website Optimizer. Il tutto avviene facendo delle richieste post tramite cUrl.
Il passo dell'autenticazione è stato superato da tempo (
), ora arriva la vera e propria fase di dialogo. Mi spiego.
Per creare un Multivariate Experiment (non mi soffermo, tanto non è i focus della discussione) devi inviare un XML ad un certo URL indicato sulla guida di google.
L'XML da inviare è questo.
Codice PHP:
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:gwo='http://schemas.google.com/analytics/websiteoptimizer/2009'
xmlns:app='http://www.w3.org/2007/app'
xmlns:gd='http://schemas.google.com/g/2005'>
<title>Multivariato da console</title>
<gwo:analyticsAccountId>XXXXXX</gwo:analyticsAccountId>
<gwo:experimentType>Multivariate</gwo:experimentType>
</entry>
(nelle X c'è il mio account analytics)
il codice per inviare l'xml invece è questo
Codice PHP:
//inizializziamo la risorsa curl
$ch = curl_init();
//dati della richiesta
$file = fopen("/xml/experiment.xml","r");
$contenuto = fread($file,filesize("/xml/experiment.xml"));
$content_length = strlen($contenuto);
//header della richiesta
$campoheader = 'Authorization: GoogleLogin auth="......"';
$campi_header = array('GData-Version: 2.0',
'Content-type: application/atom+xml; charset=UTF-8',
'Content-length:'.$content_length,
$campoheader);
curl_setopt($ch,CURLOPT_HTTPHEADER,$campi_header);
curl_setopt($ch, CURLOPT_POST, 1);
//dati della richiesta
curl_setopt($ch, CURLOPT_POSTFIELDS, $contenuto);
//url
$url = 'https://www.google.com/analytics/feeds/websiteoptimizer/experiments';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_MUTE, false);
$output = curl_exec($ch);
//chiudo la risorsa
curl curl_close($ch);
mentre l'errore che mi viene restituito nella risposta è questo.
codice:
GData ParseException The element type "entry" must be terminated by the matching end-tag "</entry>".
Qui l'http code
codice:
'http_code' => int 400
Il bello è che se tutte queste operazioni le eseguo da linea di comando tutto funziona perfettamente.
Qualcuno ha qualche consiglio da darmi?