2013-02-04 10 views
5

Ziel nennen - die Twitter-Follower eines bestimmten Benutzers erhalten mit Hilfe von JavascriptWie Twitter v1.1 API in JavaScript mit AJAX

ich den Code unten als 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'); 
    } 

}); 

ich versucht habe, die Signaturwerte aus dem Twitter OAuth-Tool berechnet .. das bin ich 400 Bad Request Fehler gibt ....

Bitte lassen Sie mich wissen, was das Problem ist ...

Antwort

1

Die oauth_ * -Felder sind alle Teil der Authorization-Header-Zeichenfolge, daher müssen sie verkettet werden, wie unten auf dieser Seite gezeigt - https://dev.twitter.com/docs/auth/authorizing-request

Sie sollten nicht als separate Header-Felder dargestellt werden.

3

Das Problem Ihre Anfrage Header ist, sollte es so aussehen:

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, das JavaScript-Bibliothek können Sie auf OAuth Zeug helfen: oauth-1.0a

Es beide Client-Seite unterstützt und node.js

Cheers