Twitter API -> Aktualisierung des Profils bg image mit PHP

Bisher habe ich versucht, das Twitter-Profil bg image über die Twitter-API mit PHP zu aktualisieren ... und dies ohne Erfolg

Viele Beispiele im Web, einschließlich dieses:
Aktualisierung des Twitter-Hintergrunds über die API
und das hier
Twitter-Hintergrund-Upload mit API- und Multi-Formulardaten
funktionieren überhaupt nicht, die meisten Leute werfen Antworten aus, ohne den Code tatsächlich zu testen.

Ich habe festgestellt, dass das Bild direkt über das HTML-Formular auf twitter.com gesendet werden kann.

<form action="http://twitter.com/account/update_profile_background_image.xml" enctype="multipart/form-data" method="post">
    File: <input type="file" name="image" /><br/>
    <input type="submit" value="upload bg">
</form>

(obwohl der Browser Sie zur Eingabe des Benutzernamens und des Kennworts für das Twitter-Konto auffordert)

Wenn ich jedoch denselben Prozess mit PHP ausführen möchte, schlägt dies fehl

<?php
if( isset($_POST["submit"]) ) {

    $target_path = "";
    $target_path = $target_path . basename( $_FILES['myfile']['name']); 

    if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
        // "The file ".  basename( $_FILES['myfile']['name']). " has been uploaded<br/>";
    } else{
        // "There was an error uploading the file, please try again!<br/>";
    }

    $ch = curl_init('http://twitter.com/account/update_profile_background_image.xml');
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_USERPWD, $_POST['name'] . ':' . $_POST['pass']);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => base64_encode(file_get_contents($target_path))));

    $rsp = curl_exec($ch);
    echo "<pre>" . str_replace("<", "&lt;", $rsp) . "</pre>";

}
?>
<form enctype="multipart/form-data" method="post">
<input type="hidden" name="submit" value="1"/>
name:<input type="text" name="name" value=""/><br/>
pass:<input type="password" name="pass" value=""/><br/>
File: <input type="file" name="myfile" /><br/>
<input type="submit" value="upload bg">
</form>

Das Merkwürdige an diesem Code ist, dass er die Twitter-XML erfolgreich zurückgibt.OHNE Aktualisierung des Profilhintergrundbildes. Also am Ende scheitert es immer noch.

Vielen Dank für das Lesen. Es wird großartig sein, wenn Sie helfen können. Bitte testen Sie zuerst Ihren Code, bevor Sie Antworten herausgeben. Vielen, vielen Dank.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage