【问题标题】:403 Error When Making Twitter Search API Call进行 Twitter 搜索 API 调用时出现 403 错误
【发布时间】:2013-07-27 06:27:00
【问题描述】:

今天,我的脚本在 Chrome 中停止工作,现在我收到 403 Forbidden 或 400 Bad Request。这只发生在 Chrome 中,并且只发生在我的 Twitter Search API 调用中:

var url = "http://search.twitter.com/search.json?q=myquery&include_entities=true&callback=?";

    $.ajax({
        type: 'GET',
        url: url,
        async: false,
        jsonpCallback: 'testCallback',
        contentType: "application/json",    
        dataType: 'jsonp'
    });

我在这里和其他论坛上看到了一些类似的投诉,但从来没有一个有意义的解释,当然也不是解决方案。这怎么可能是仅限 Chrome 的错误。如果您将搜索查询 url 粘贴到地址栏中,则会返回提要。

我很茫然,快要启动我的应用了,有点担心。

编辑: 错误现在是 400 并且在所有浏览器中。据我所知,这可能与 Twitter 弃用其 API 的 v.1 有关。

【问题讨论】:

  • 这件事今天发生在我身上。我找不到解释,我唯一的猜测是它可能与 Chrome 的更新有关。所有其他浏览器都表现良好,Chrome 会抛出 403。任何进展/解决方案?

标签: api google-chrome search twitter


【解决方案1】:

检查您的网络活动 - Chrome 会自动将您的 HTTP 请求转换为 HTTPS 请求。解决此问题的最佳方法可能是通过代理路由您的请求:

http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-cross-domain-ajax-request-with-yql-and-jquery/

我在某处读到 Twitter 在大约一个月内完全禁用匿名 AJAX 请求,这是其 API 1.0 弃用计划的一部分。所有搜索 API 请求都需要使用应用程序身份验证令牌进行。

【讨论】:

    【解决方案2】:

    这也发生在这里。昨天它在所有浏览器上都能正常工作,今天我们从 Chrome 中的搜索调用中得到 403(其他浏览器仍在工作)。 rate_limit_status.json 虽然在 Chrome 上正确返回。尝试在搜索请求中将协议从 http 更改为 https,但没有帮助。目前使用 jTweetsAnywhere jquery 插件来获取 twitter 提要。当我调试更多时,我注意到当我从查询中删除回调参数时,我得到了我想要的响应。

    编辑:今天它再次与 Chrome 一起工作..

    【讨论】:

      【解决方案3】:

      我知道这有点老了,但对于任何寻找答案的人来说,这与新的 Twitter API 有关,这里有一个发布的解释,并附有关于让它在未来再次工作的说明:http://thomasbillenstein.com/jTweetsAnywhere/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-09
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        • 2020-06-05
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多