Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 400 AJAX调用Twitter时出错_Javascript_Ajax_Twitter - Fatal编程技术网

Javascript 400 AJAX调用Twitter时出错

Javascript 400 AJAX调用Twitter时出错,javascript,ajax,twitter,Javascript,Ajax,Twitter,我正在开发一个网页,可以让你搜索你所在地区的twitter用户。您在搜索框中输入一个名称,它将返回距离城市50英里(城市始终相同)内具有该名称的用户 我在验证时遇到了问题,我找到了oauth.io。我用它来验证,它似乎起作用了。但当我进行搜索时,我对Twitter的请求返回400错误请求。我不确定我做错了什么。我查看了oauth.io文档,但没有找到任何内容 下面是获取用户在表单字段中输入内容值的代码部分: // Click function $('.user-getter').submit

我正在开发一个网页,可以让你搜索你所在地区的twitter用户。您在搜索框中输入一个名称,它将返回距离城市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
下面是调用授权然后发送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
};

现在,我只想在console.log中看到结果。

要使用OAuth.io向Twitter API发出请求,您必须使用OAuth.io Javascript SDK,而不是直接使用$.ajax(OAuth.io Javascript SDK在幕后使用$.ajax的语法)

SDK透明地为您完成所有困难的事情:代理HTTP请求,注入所有需要的OAuth凭据(OAuth_令牌、OAuth_令牌、机密、签名、nonce、时间戳等)

看看这个jsfiddles:


我希望这会有所帮助,

谢谢。我如何添加地理代码以将搜索限制在我的区域?地理编码:42.940036200000001,-78.8677924,50miThis看起来像/users/search.json不允许使用地理编码,但您可以使用其他端点,如/search/tweets.json:
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
    });
})