Twitter API -> aktualizacja profilu bg za pomocą php
Do tej pory próbowałem zaktualizować obraz twitterowy profil bg na twitter api z php ... i bez powodzenia
Wiele przykładów w sieci, w tym ten:
Aktualizacja tła Twittera za pomocą interfejsu API
i ten
Przesyłanie tła na Twitterze za pomocą API i danych wieloformatowych
nie działają w ogóle, większość ppl wyrzuca odpowiedzi bez testowania kodu.
Odkryłem, że bezpośrednio przesyłam obraz do formularza html twitter.com thr, to zadziała:
<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>
(chociaż przeglądarka wyświetli monit o nazwę użytkownika i hasło do konta Twitter)
Jeśli jednak chcę przejść ten sam proces z php, to się nie powiedzie
<?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("<", "<", $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>
Dziwną rzeczą tego kodu jest to, że ... pomyślnie zwraca twitter XML,BEZ zaktualizowanie obrazu tła profilu. Tak więc w końcu nadal się nie udaje.
Wielkie dzięki za przeczytanie tego. Będzie wspaniale, jeśli możesz pomóc. Uprzejmie przetestuj swój kod przed wyrzuceniem odpowiedzi, wiele podziękowań.