PHP Twitter Api update_profile_image geht nicht!

denniz2901

Grünschnabel
Hallo,
anbei ein Twitter-Programm bei dem ich eigentlich das Profile Image ändern möchte.
Ich benutze XAMPP 1.7.2!
Das komische ich bekomme keine Fehlermeldung.
Des weiteren bekomme ich auch XML zurückgeliefert mit meiner letzten
Nachricht von Twitter so wie es eigentlich auch sein sollte. Nur das Bild ändert sich nicht in Twitter. Bin über jede Hilfe dankbar.

Gruss
Dennis

<?php
$name="";
$pw="";

$bild = "fussball.jpg";

$args=array('image' => $bild);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://twitter.com/account/update_profile_image.xml");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
curl_setopt($ch, CURLOPT_USERPWD, "$name:$pw");

$result = curl_exec($ch);

$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = curl_error($ch);

error_reporting(E_ALL);
ini_set('display_errors', 1);

if ($http_status != 200) {
exit("Fehler beim Verbinden mit Twitter Fehlercode = ".$http_status." <br />Fehlermeldung: ".$err);
}

print_r($result);

$tweeters = new SimpleXMLElement($result);

echo "<p><img src=\"".$tweeters->profile_image_url."\" alt=\"".$tweeters->screen_name."\" WIDTH=60 HEIGHT=60\"></p>";
echo "<p>Nachrichten ID: ".$tweeters->status->id."</p>";
echo "<p>Gesendet am: ".$tweeters->status->created_at."</p>";
echo "<p>Text: ".$tweeters->status->text."</p>";
echo "<p>User ID: ".$tweeters->id."</p>";
echo "<p>Screen Name: ".$tweeters->screen_name."</p>";
echo "<p>Name: ".$tweeters->name."</p>";


curl_close($ch);

?>
 
Bitte das nächste mal den code in [ PHP ] [ /PHP ] setzen.

Zum Problem:
Ich bin mir zwar nicht sicher aber ich denke dein Problem liegt hier:
PHP:
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);

Du übergibst hier ein Array, tatsächlich sollte hier aber ein string nach dem Muster var1=value1&var2=value2... übergeben werden.
In deinem Fall müsste es dann so aussehen:
PHP:
curl_setopt($ch, CURLOPT_POSTFIELDS,"image=fussball.jpg");
 
[ PHP ]curl_setopt($ch, CURLOPT_POSTFIELDS,"image=fussball.jpg"); [ /PHP ]

habe es versucht aber es passiert das Gleiche.

man kann array und string übergeben.

hat vielleicht noch jemand eine Idee?

Gruss
Dennis
 
Du musst die PHP-Code-Tags ohne Leerzeichen innerhalb der eckigen Klammern schreiben. Desweiteren schlage ich zunächst einmal vor, die Befehle ini_set() und error_reporting() direkt nach die PHP-Eröffnungstags zu setzen:

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1); 

$name="";
$pw="";

Dann noch mal testen, ob evtl. eine Fehlermeldung kommt.

Außerdem hat rd4eva vollkommen recht, wenn man in das Manual schaut:

Für die folgenden option -Parameter sollte value ein String sein:

CURLOPT_POSTFIELDS Die in einem HTTP-POST-Request zu nutzenden Daten.

Was ich mich auch grad noch frage: Wird $name und $pw irgendwo gesetzt und der Code hier ist nicht vollständig?
 
Habe eure Vorschläge mal ausprobiert aber der Fehler bleibt.
Das Image wird nicht übergeben.

Name und Passwort wird natürlich dort gesetzt habe den Benutzernamen und
das Passwort allerdings rausgemacht.

Habe eine funktionierendes PHP-Programm indem ich die Profil-Farben ändere
und diese werden auch in einem Array übergeben. Habe den Code aber trotzdem
geändert in

[ PHP ]curl_setopt($ch, CURLOPT_POSTFIELDS,"image=fussball.jpg"); [ /PHP ]

Fehlerreport habe ich ganz an den Anfang gesetzt hat aber auch nichts gebracht.

Trotzdem danke.

Gruss
Dennis
 
Zurück