我有问题。我有Twitter中的OAuth工具生成的授权标题(我隐藏了键值)
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"}
以下是我使用的文档Twitter REST API的一部分: https://dev.twitter.com/rest/reference/get/search/tweets
有什么问题?有什么想法吗?
答案 0 :(得分:1)
Twitter不支持从网页生成身份验证标头。您必须使用他们的网站进行“握手”验证并重定向回您的网页。
如果您想避免这种情况并在本地保留您的oauth密钥,则需要构建一个可以使用存储密钥进行身份验证的服务器。然后,您的网页将通过您的服务器发出Twitter请求。