如何使用AJAX在javascript中调用Twitter v1.1 API

use*_*233 5 twitter ajax oauth

目的 - 使用javascript获取特定用户的Twitter粉丝

我已尝试将以下代码作为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');
    }

});
Run Code Online (Sandbox Code Playgroud)

我从Twitter OAuth工具计算了签名值..这给了我400 Bad Request错误....

请让我知道问题是什么......

小智 1

oauth_* 字段都是授权标头字符串的一部分,因此需要将它们连接起来,如本页底部所示 - https://dev.twitter.com/docs/auth/authorizing-request

它们不应该作为单独的标头字段呈现。