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("<", "&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>

Странная вещь этого кода в том, что он успешно возвращает твиттер XML,БЕЗ обновление фонового изображения профиля. Так что в конце все равно не получается.

Большое спасибо за чтение этого. Будет здорово, если ты поможешь. Пожалуйста, сначала проверьте ваш код, прежде чем выбросить ответы, большое спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос