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

标签 ajax oauth twitter

目标 - 使用 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');
    }

});

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

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

最佳答案

问题是您的请求 header ,它应该是这样的:

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"');

顺便说一句,这个 javascript 库可能会帮助您处理 OAuth 的内容:oauth-1.0a

它同时支持客户端和 node.js

干杯

关于ajax - 如何使用 AJAX 在 javascript 中调用 Twitter v1.1 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14681182/

相关文章:

ajax - 使用restful api的简单搜索

css - JSF - 为弹出面板创建覆盖

security - 身份服务器 API 策略和角色

javascript - 在 sencha touch 2 中使用 oAuth 连接 facebook

oauth - 使用 OAuth2 的地理服务器身份验证

android - Android 中没有应用程序时 Twitter 登录失败

javascript - JS Code over AJAX with jQuery - 这种方法安全吗?

php - Twitter oauth2/invalidate_token 错误 "Unable to verify your credentials"、 "authenticity_token_error"

推特 API : timestamp out of Bounds when calling oauth request_token

jquery - jCarousel - 更新轮播项目而不刷新页面