Twitter API - загрузить изображение

Я пытаюсь загрузить изображение через Twitter api, как описано здесь, я создал форму с name="status" и name="media[]" -

<form id="image-form">
    <input type="text" name="status">
    <input name="media[]" type="file" />
    <input type="submit" value="POST IMAGE">
</form>

Кроме того, у меня есть обработчик submit -

   $('#image-form').submit( function(e) {
                e.preventDefault();
                var formData = new FormData(this); // <-- 'this' is your form element


        $.ajax({
                    url:'https://api.twitter.com/1.1/statuses/update_with_media.json',
                    type: 'POST',
                    contentType: false,
                    pagerocessData: false,
                    processData: false,
                    data: formData,
                    success: function(data) {
                        alert('Image upload succeeded');
                    },
                    error: function (responseData, textStatus, errorThrown) {
                        alert('GET failed.');
                    }
                });
            });

В разделе "Сети в Chrome" я вижу этот запрос с помощью Content-Type:multipart/form-data

Наконец, я получаю "ответ 200", но он не загружает изображение в аккаунт Twitter,

Что я здесь сделал неправильно?

Ответ 1

Я не могу опубликовать это как комментарий, поэтому я буду рисковать своей жизнью, написав его как ответ: P.

Я попробовал Изучение API Twitter (на Firefox работает, в Chrome это не удается при загрузке).

Шаги по настройке тестирования

  • Сервис. Выберите https://api.twitter.com/1.1, он отобразит некоторые параметры. В списке конечных точек выберите тот, который вы используете.
  • Аутентификация: OAuth (попробуйте поддельную учетную запись, если вы боитесь использовать свои собственные, я создал поддельный тест для этого. Я пробовал с помощью No auth, Basic Auth и никто из них не работал).
  • URL-адрес запроса: POST, URL-адрес устанавливается автоматически.
  • вкладка запроса: status - сообщение в твиттере.
  • Вкладка "Тело" : прокрутите вниз и найдите media, выберите изображение.

Наконец нажмите send.

Что я могу заметить, так это то, что если я не укажу изображение или текст, он не сработает (очевидно). Если я установил изображение без статуса, он будет загружать изображение, и если я укажу оба, ну... он загрузит изображение с текстом.

Обратите внимание, что статус добавляется к URL-адресу.

Итак, несколько вопросов:

  • Вы настроили OAuth?
  • Вы устанавливаете хотя бы одно из необходимых полей (статус или носитель)? Вы передаете статус через URL?
  • Когда вы говорите, что это работает, но оно не загружает изображение, вы видите статус в своей учетной записи Twitter?

Вот результат