Curl 'Inhaltslänge erforderlich' Fehler ... 3 Tage der Suche, kein GlückPhp

PHP-Programmierer chatten hier
Anonymous
 Curl 'Inhaltslänge erforderlich' Fehler ... 3 Tage der Suche, kein Glück

Post by Anonymous »

Bevor Sie fragen: Ich habe bereits jede ähnliche Frage überprüft, die bereits eine Antwort hatte, und keine der vorgeschlagenen Lösungen funktioniert. Ich hoffe also, dass jemand in der Lage sein kann, einen Fehler in meinem Code zu bemerken. < /p>

Beim Senden eines Curl-Posts an Google werde ich mit einem 411-Fehler zurückgegeben, "Postanforderungen erfordern einen Header inhaltslang" < /p>

//Info required to authenticate
$URL = "https://www.google.com/accounts/ClientLogin";
$POST = http_build_query(array(
'Email' => 'XXXXXXX@gmail.com',
'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=nLSID=nAuth= or ERROR=
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/ ... XXXXXXXXXx";

$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 ''.print_r($output).'';
< /code>

Dinge, die ich ausprobiert habe: < /p>

-Anadding der 'Inhaltslänge:' .Strlen ($ post_data) < /p>

-Content-type von 'x-www-form-urmoken' < /p> < /pl. Für post_data, so dass ich nicht http_build_query < /p>

-Treibers verwendet habe, um es als Put anstelle von Post < /p>

zu senden-und ein paar andere Dinge im Verlauf der letzten Tage, die ich nur mit einem Ereignis nicht nur mit einem Ereignis erinnern kann. ohne Authentifizierungsschritte, die vom Benutzer erforderlich sind. Dies muss in der Lage sein, alle innerhalb einer PHP-Funktion asynchron auszuführen (über AJAX genannt) < /p>

Hinweis: Nicht mit WordPress oder anderen CMS < /p>

-Kyle < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post