Twitter API在jQuery AJAX中设置授权头

Twitter API setting Authorization header in jQuery AJAX

本文关键字:设置 授权 AJAX API jQuery Twitter      更新时间:2023-09-26

我有个问题。我有OAuth Tool在Twitter中生成的Authorization头(我隐藏了密钥的值)

Authorization: OAuth oauth_consumer_key="xxxxxxxxxxxxxxxx", oauth_nonce="xxxxxxxxxxxxxxxx", oauth_signature="xxxxxxxxxxxxxxx", oauth_signature_method="HMAC-SHA1", oauth_timestamp="xxxxxxxxx", oauth_version="1.0"

我有一个AJAX代码:

$.ajax({
    url: 'https://api.twitter.com/1.1/search/tweets.json?q=%23freebandnames&since_id=24012619984051000&max_id=250126199840518145&result_type=mixed&count=4',
    type: 'GET',
    beforeSend: function (xhr) {
            xhr.setRequestHeader('Authorization', 'OAuth oauth_consumer_key="xxxxxxxxxxxxxxx", oauth_nonce="xxxxxxxxxxxxxxx", oauth_signature="xxxxxxxxxxxxxxx", oauth_signature_method="HMAC-SHA1", oauth_timestamp="xxxxxxxxx", oauth_version="1.0"');
        },
    dataType: "jsonp",
    success: function(data) {
        console.log("Success: " + data);
        }
    },
    error: function(data) {
        console.log("Error " + data);
    }
});

但此代码返回错误

Object {readyState: 4, status: 404, statusText: "error"}

下面是我使用的TwitterRESTneneneba API文档的一部分:https://dev.twitter.com/rest/reference/get/search/tweets

怎么了?有什么想法吗?

Twitter不支持从网页生成身份验证头。你必须通过"握手"使用他们的网站进行身份验证并重定向回你的网页。

如果您想避免这种情况并将oauth密钥保存在本地,则需要构建一个可以使用存储的密钥进行身份验证的服务器。然后你的网页会通过你的服务器发出推特请求。