API Twitter -> обновление изображения в профиле с помощью php
До сих пор я пытался обновить профиль твиттера bg image через твиттер API с помощью php ... и безуспешно
Много примеров в Интернете, включая этот:
Обновление фона Twitter через API
и этот
Фоновая загрузка из Твиттера с API и мульти формами
не работают вообще, большинство людей выкидывают ответы, не проверяя код.
Я обнаружил, что непосредственно отправьте изображение в html-форму twitter.com, оно будет работать:
<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>
(хотя браузер предложит вам ввести имя пользователя и пароль учетной записи Twitter)
Тем не менее, если я хочу пойти через тот же процесс с PHP, он не сможет
<?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>
Странная вещь этого кода в том, что он успешно возвращает твиттер XML,БЕЗ обновление фонового изображения профиля. Так что в конце все равно не получается.
Большое спасибо за чтение этого. Будет здорово, если ты поможешь. Пожалуйста, сначала проверьте ваш код, прежде чем выбросить ответы, большое спасибо.