2013-02-04 36 views
5

Mục tiêu - để có được những người theo twitter của một người dùng cụ thể sử dụng javascriptLàm thế nào để gọi Twitter v1.1 API trong javascript sử dụng AJAX

Tôi đã thử đoạn code dưới đây như là một POC-

$(document).ready(function() { 
    // Handler for .ready() called. 

    $.ajax({ 
     url: "https://api.twitter.com/1.1/followers/ids.json?callback=?", 
     type: "GET", 
     data: { cursor: "-1", 
       screen_name: "twitterapi" }, 
     cache: false, 
     dataType: 'json', 

     success: function(data) { alert('hello!'); console.log(data);}, 
     error: function(html) { alert(html); }, 
     beforeSend: setHeader 
    }); 


    function setHeader(xhr) { 
     if(xhr && xhr.overrideMimeType) { 
      xhr.overrideMimeType("application/j-son;charset=UTF-8"); 
     } 

     //var nonce = freshNonce(); 
     //var timestamp = freshTimestamp(); 
     //var signature = sign(nonce,timestamp); 

     //alert(signature); 
     //alert(accessToken+"-"+consumerKey); 
     //alert(oauth_version+"-"+oauth_signature_method); 
     xhr.setRequestHeader('Authorization','OAuth'); 
     xhr.setRequestHeader('oauth_consumer_key', 'HdFdA3C3pzTBzbHvPMPw'); 
     xhr.setRequestHeader('oauth_nonce', '4148fa6e3dca3c3d22a8315dfb4ea5bb'); 
     xhr.setRequestHeader('oauth_signature','uDZP2scUz6FUKwFie4FtCtJfdNE%3D'); 
     xhr.setRequestHeader('oauth_signature_method', 'HMAC-SHA1'); 
     xhr.setRequestHeader('oauth_timestamp', '1359955650'); 
     xhr.setRequestHeader('oauth_token', '1127121421-aPHZHQ5BCUoqfHER2UYhQYUEm0zPEMr9xJYizXl'); 
     xhr.setRequestHeader('oauth_version', '1.0'); 
    } 

}); 

tôi tính toán các giá trị chữ ký từ các công cụ Twitter OAuth .. này mang lại cho tôi 400 Request lỗi Bad ....

Xin vui lòng cho tôi biết vấn đề là gì ...

Trả lời

1

Trường oauth_ * là một phần của chuỗi tiêu đề Cấp phép, vì vậy chúng cần phải được nối như được hiển thị ở cuối trang này - https://dev.twitter.com/docs/auth/authorizing-request

Chúng không được hiển thị dưới dạng trường tiêu đề riêng biệt.

3

Vấn đề là tiêu đề của yêu cầu của bạn, nó phải là như thế này:

xhr.setRequestHeader('Authorization','OAuth oauth_consumer_key="HdFdA3C3pzTBzbHvPMPw", oauth_nonce="4148fa6e3dca3c3d22a8315dfb4ea5bb", oauth_signature="uDZP2scUz6FUKwFie4FtCtJfdNE%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp= "1359955650", oauth_token, "1127121421-aPHZHQ5BCUoqfHER2UYhQYUEm0zPEMr9xJYizXl", oauth_version="1.0"'); 

Btw, thư viện javascript này có thể giúp bạn về công cụ OAuth của: oauth-1.0a

Nó hỗ trợ cả hai phía khách hàng và Node.js

Chúc mừng

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