cURL "Content-length nécessaire d'erreur" ... 3 jours de recherche, pas de chance

Avant de vous demander: j'ai déjà vérifié tous la même question qui avait déjà une réponse, et aucune des solutions proposées de travail. Donc je suis en espérant que quelqu'un peut être en mesure de remarquer une erreur dans mon code.

Lors de la soumission d'une boucle publier sur Google, je suis de retour avec une 411 erreur, "POST demandes nécessitent une-tête Content-length"

//Info required to authenticate
$URL = "https://www.google.com/accounts/ClientLogin";
$POST = http_build_query(array(
 'Email' => '[email protected]',
 'Passwd' => 'XXXXXXXXXXXXXXX',
 'source' => 'primary',
 'service' => 'cl'
));

$ch = curl_init( $URL );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$response = curl_exec($ch); //returns SID=<sid code>nLSID=<lsid code>nAuth=<auth code> or ERROR=<message>
if ( curl_errno($ch) )
 die( 'Error contacting server' );

//Successful auth results in http code 200
if ( curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200 )
 die( 'Failed to authenticate' );

//Extract auth code - Authorization: GoogleLogin auth=yourAuthToken
$auth_code = substr($response, strpos($response, 'Auth=')+5);

//We're done here
curl_close($ch);


$url = "https://www.googleapis.com/calendar/v3/calendars/".urlencode('[email protected]')."/events?sendNotifications=true&pp=1&key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx";  

$post_data = http_build_query(array(
    "end" => array("dateTime" => "2013-14-11T10:40:00.000-07:00"),  
    "start" => array("dateTime" => "2013-14-11T10:00:00.000-07:00"),  
    "summary" => "my_summary",
    "description" => "my_description"
));

$headers = array(
    'Authorization: GoogleLogin auth='.$auth_code.'',
    'Content-Type: application/json'
);

$ch2 = curl_init();  
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch2, CURLOPT_POSTFIELDS, $post_data);  

$output = curl_exec($ch2);  

curl_close($ch2);

echo '<pre>'.print_r($output).'</pre>';

Choses que j'ai essayé:

-Ajout d'un " Content-length: '.strlen($post_data)

-Contenu-type de "x-www-form-urlencoded'

-à l'aide d'une manière très simple chaîne json pour post_data de sorte que je n'ai pas utilisé http_build_query

-En essayant de le faire envoyer une mise à la place de la POSTE

-Et quelques autres choses au cours de la dernière quelques jours que je ne peux pas tout à fait droit de rappel maintenant

Intention: Pour ajouter un événement à seulement MON calendrier à l'aide de PHP seulement sans étapes d'authentification requis par l'utilisateur. Ce doit être capable d'exécuter tous à l'intérieur d'une fonction php, de manière asynchrone (via AJAX)

REMARQUE: ne Pas utiliser WordPress ou tout autre CMS

-Kyle

OriginalL'auteur Kyle the Koder | 2013-12-10