ajax - 使用 jQuery $.ajax 调用 Twitter API 1.1 搜索

标签 ajax jquery twitter twitter-oauth

这是一个非常简单的示例,调用 Twitter 的搜索 API 以从已知包含推文的标签 #fml 获取所有推文。

我相信我正确使用了仅应用程序身份验证,如下所述:https://dev.twitter.com/docs/auth/application-only-auth (有关调用的示例,请参阅步骤 3)

我被要求提供一个不涉及任何服务器端代码的解决方案,因此我将承载代码包含在 JavaScript 中,这在一开始就不好,但是......

我希望这段代码能够工作。相反,它会生成错误“400(错误请求)”。有什么想法吗?

$.ajax({
    url: "https://api.twitter.com/1.1/search/tweets.json",
    dataType: "jsonp",
    data: "q=%23fml",
    beforeSend:  function (xhr) { 
             xhr.setRequestHeader ("Authorization", "Bearer XXmyBearerCodeXX"); 
            },
    success: function(json){ alert(json); }
});

编辑 1 - 经过验证的 Twitter 通话

使用hurl.eu我能够使用上述查询和授权 header 从 API 获得成功响应,因此我认为这意味着我的 Twitter 调用是正确的,只是在 jQuery.ajax() 中没有正确设置,但我只是看不到什么丢失了。

最佳答案

您无法使用数据类型为 JSONP 的 AJAX 调用来设置请求 header 。

查看这个问题:Set Headers with jQuery.ajax and JSONP?

最好的解决方案是使用服务器端代理来为您进行搜索。我知道您正在寻找仅限客户端的解决方案,但由于存在此限制,并且无法绕过 CORS,因此 Twitter API 目前似乎就是这样做的。

编辑 可以使用像 Yahoo's YQL 这样的代理。如果您无法访问其中之一。

关于ajax - 使用 jQuery $.ajax 调用 Twitter API 1.1 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004070/

相关文章:

c# - 无法从 Javascript 访问 webmethod

jquery - 从 ie 隐藏特定的 css 规则

javascript - 每个类(class)运行一次,但组运行一次

jquery - 获取AJAX请求中最后一个div的值

javascript - 小型 Ajax JavaScript 库

jquery - Controller 可以根据结果返回 JSON 或 HTML

javascript - 使用 jQuery/javascript 仅筛选出我需要的列的 JSON

javascript - 使用 Twitter Streaming API 和 jQuery?

android - Twitpic 错误 - 无效的用户名和密码

video - Twitter - 如何将其他人的推文中的原生视频嵌入到新推文或 DM 中