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($chCURLOPT_POST1); 
//dati della richiesta 
curl_setopt($chCURLOPT_POSTFIELDS$contenuto); 
//url
$url 'https://www.google.com/analytics/feeds/websiteoptimizer/experiments'

curl_setopt($chCURLOPT_URL$url); 
curl_setopt($chCURLOPT_HEADERfalse); 
curl_setopt($chCURLOPT_RETURNTRANSFER,true);
curl_setopt($chCURLOPT_MUTEfalse);
$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?