【问题标题】:400 Error on AJAX Call to TwitterAJAX 调用 Twitter 时出现 400 错误
【发布时间】:2015-04-23 18:53:31
【问题描述】:

我正在开发一个网页,让您可以搜索您所在地区的 Twitter 用户。您在搜索框中输入名称,它会返回城市 50 英里范围内具有该名称的用户(城市始终相同)。

我在进行身份验证时遇到了问题,我找到了 oauth.io。我用它来进行身份验证,它似乎正在工作。但是当我进行搜索时,我对 Twitter 的请求返回 400 bad request 错误。我不确定我做错了什么。我查看了 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 中查看结果。

【问题讨论】:

    标签: javascript ajax twitter


    【解决方案1】:

    要使用 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
        });
    })
    

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

    看看这个 jsfiddles:http://jsfiddle.net/uz76E/10/

    希望对你有帮助

    【讨论】:

    • 谢谢。我将如何添加地理编码以将搜索限制在我的区域?地理编码:42.94003620000001,-78.8677924,50mi
    • 这看起来像 /users/search.json 不允许地理编码,但您可以使用其他端点,如 /search/tweets.json:dev.twitter.com/docs/api/1.1/get/search/tweets
    猜你喜欢
    • 2019-05-21
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多