2015-08-12 27 views
12

tôi cố gắng để tải lên một hình ảnh qua Twitter api, như mô tả ở đó tôi đã tạo ra một hình thức với và name="media[]" -Twitter API - tải lên một hình ảnh

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

ngoài ra tôi có một handler 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.'); 
        } 
       }); 
      }); 

Trong Mạng tại Chrome tôi thấy yêu cầu này với Content-Type:multipart/form-data

cuối cùng tôi nhận được "res ponse 200 "nhưng nó không tải hình ảnh lên tài khoản Twitter,

Tôi đã làm gì sai ở đây?

+1

Từ [POST media/upload] (https://dev.twitter.com/rest/reference/post/media/upload): 'Đảm bảo POST của bạn là một yêu cầu nhiều dữ liệu/biểu mẫu '. Bạn đã làm điểu đó? (Tôi đã không sử dụng api của twitter, nhưng có vẻ như nó có thể là) –

+1

Đã kiểm tra và tìm thấy - 'Content-Type: multipart/form-data' – URL87

+1

Tại sao bạn không sử dụng hook API hiện tại thay vì ? Điểm cuối này đã bị hủy. Vui lòng sử dụng trạng thái/cập nhật POST để tải lên một hoặc nhiều thực thể phương tiện. – ChrJantz

Trả lời

8

Tôi không thể đăng bài này làm bình luận, vì vậy tôi sẽ mạo hiểm cuộc sống của tôi viết nó như một câu trả lời: P.

Tôi đã thử Exploring the Twitter API (trên Firefox hoạt động, trong Chrome nó không thành công khi tải nó).

bước để thiết lập thử nghiệm

  • Dịch vụ: Chọn https://api.twitter.com/1.1, nó sẽ hiển thị một số tùy chọn. Trong danh sách điểm cuối chọn danh sách bạn đang sử dụng.
  • Xác thực: OAuth (thử với một tài khoản giả nếu bạn sợ của việc sử dụng sở hữu của bạn, tôi đã tạo ra một giả để kiểm tra điều này tôi đã cố gắng với No auth, Basic Auth và không ai trong số họ làm việc.)
  • Yêu cầu URL: POST, url được đặt tự động.
  • Tab truy vấn: status - Thông báo tweet.
  • Tab nội dung: cuộn xuống và tìm media, chọn một hình ảnh.

Cuối cùng nhấn send.

Điều tôi có thể nhận thấy là nếu tôi không chỉ định hình ảnh hoặc văn bản, nó sẽ không thành công (hiển nhiên). Nếu tôi thiết lập một hình ảnh mà không có một trạng thái nó sẽ tải lên hình ảnh, và nếu tôi chỉ định cả hai, tốt ... nó sẽ tải lên hình ảnh với văn bản.

Lưu ý rằng trạng thái được nối vào URL.

Vì vậy, một số câu hỏi:

  • Bạn có thiết lập OAuth?
  • Bạn có đang đặt ít nhất một trong các trường bắt buộc (trạng thái hoặc phương tiện) không? Bạn có vượt qua trạng thái thông qua URL không?
  • Khi bạn nói nó hoạt động, nhưng nó không tải lên hình ảnh, bạn có thấy trạng thái trong tài khoản twitter của mình không?

Đây là kết quả của số fake account tôi đã tạo.

Tôi hy vọng ít nhất nó cung cấp cho bạn một gợi ý về những gì nó có thể được.

+0

còn nếu tôi muốn gửi hình ảnh qua url hình ảnh? – Ozan

+0

Bạn có mẫu javascript cho mục này không? – Elshan

Các vấn đề liên quan