2013-02-04 4 views
5

Objectif - pour obtenir les twitter adeptes d'un utilisateur particulier en utilisant javascriptComment appeler Twitter API en JavaScript v1.1 en utilisant AJAX

J'ai essayé le code ci-dessous comme 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'); 
    } 

}); 

I calculé les valeurs de signature de l'outil Twitter OAuth .. Cela me donne 400 Bad Request erreur ....

S'il vous plaît laissez-moi savoir ce que le problème est ...

Répondre

1

Les champs oauth_ * font tous partie de la chaîne d'en-tête Authorization, ils doivent donc être concaténés comme indiqué au bas de cette page - https://dev.twitter.com/docs/auth/authorizing-request

Ils ne doivent pas être présentés comme des champs d'en-tête séparés.

3

Le problème est en-tête de votre demande, il devrait être comme ceci:

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, cette librairie javascript peut vous aider sur les affaires de OAuth: oauth-1.0a

Il charge à la fois côté client et Node.js

Vive

Questions connexes