amy*_*n83 4 javascript twitter ajax
我正在开发一个网页,让您搜索您所在地区的推特用户.您在搜索框中输入一个名称,它会返回在该城市50英里范围内具有该名称的用户(城市始终相同).
我在验证时遇到了麻烦,我找到了oauth.io.我用它来验证它似乎工作.但是当我进行搜索时,我对Twitter的请求将返回400错误请求错误.我不确定我做错了什么.我查看了oauth.io文档但找不到任何内容.
以下是获取用户在表单字段中输入内容值的代码部分:
// Click function
$('.user-getter').submit(function(event) {
// prevent form refresh
event.preventDefault();
// zero out results if previous search has run
$('.user-results').html('');
// Get the values of what the person entered in search
var query = $(this).find("input[name='user_search']").val();
// Run function to send API request to Twitter
getUser(query);
}); // end click function
Run Code Online (Sandbox Code Playgroud)
以下是调用授权然后发送ajax请求的代码部分:
var getUser = function(query) {
OAuth.initialize('oMQua1CuWerqGKRwqVkzDx5uijo')
OAuth.popup('twitter').done(function(twitterData) {
$.ajax({
type: "GET",
url: "https://api.twitter.com/1.1/users/search.json?&geocode=42.94003620000001,-78.8677924,50mi&q=" + query,
dataType: "jsonp"
});
console.log( "Data Saved: " + twitterData ); // can see in inspector tab under Network
}); // end oAuth popup
};
Run Code Online (Sandbox Code Playgroud)
现在,我只想在console.log中看到结果.
要使用OAuth.io向Twitter API发出请求,您必须使用OAuth.io Javascript SDK而不是直接使用$ .ajax(OAuth.io Javascript SDK使用场景后面的$ .ajax语法)
OAuth.initialize('oMQua1CuWerqGKRwqVkzDx5uijo')
OAuth.popup('twitter').done(function(twitterData) {
twitterData.get('/1.1/users/search.json', {
data: {
q: query
}
}).done(function(search) {
//result of the search here
console.log(search);
}).fail(function(error) {
//error management here
});
})
Run Code Online (Sandbox Code Playgroud)
SDK透明地为您完成所有难题:代理HTTP请求,注入所有需要的OAuth凭据(oauth_token,oauth_token_secret,签名,nonce,timestamp等...)
看看这个jsfiddles:http://jsfiddle.net/uz76E/10/
我希望有帮助,