Twitter API 1.1 Oauth w/ Meteor

3
我对Meteor和Twitter API都不太熟悉,但我正在为演示目的创建一个简单的Meteor应用程序。我需要能够搜索Twitter上特定的hashtag,并将它们以列表形式显示出来。整个过程非常简单。
我已经注册了我的应用程序并收到了密钥等信息。我只需要看一个从开始到接收Twitter搜索结果的代码流程示例。
我将在本地运行此应用程序,并且只需要能够发送GET请求并接收RESTful响应。
我已经看过有关jQuery不支持的文档,因为我的后端是JS,所以我需要用JS完成这个任务。
是否有人可以提供文档,让我看到代码示例如何实现呢?
3个回答

3
自从 Twitter API 的 v1.1 版本(2013 年 5 月)以来,未经 OAuth 授权就无法进行搜索。
如果您想在客户端以简单的方式执行此操作,则可以使用 OAuth.io
我刚刚在 jsfiddle 中制作了 一个使用 Twitter API 进行简单搜索的示例
代码非常简单:
//Initialize the SDK with my OAuth.io public key, then display the OAuth authorization form
OAuth.initialize('YOUR-PUBLIC-KEY')
OAuth.popup('twitter', function(err, twitter) {
    var search = encodeURIComponent("@oauth.io")
    twitter.get('/1.1/search/tweets.json?q=' + search)
           .done(function(data) {
        console.log(data); //your search results are in data
    })
})

2
很好的问题。你是正确的,即使是像你需要的那样简单的GET请求,Twitter 1.1 API也需要oAuth令牌。从Twitter开发者网站请求oAuth密钥和密钥似乎对于本地运行的项目来说有些过度,但对于他们API的每个端点都是必需的。

一旦你拥有了oAuth消费者密钥和密钥,就可以开始进行API调用。在Twitter开发者网站上随意搜索建议不要通过JQuery发送oAuth凭据,因为出于安全原因Twitter不支持此方法。你可以在这里阅读更多相关信息。

我不确定你需要如何处理Twitter数据,因此我没有嵌入任何oAuth的代码示例。与此同时,考虑一下如何实现你的解决方案,看看oAuth工作原理。PHP?Python?Ruby?也许这些Twitter的oAuth代码示例是一个不错的起点?


谢谢提供的信息 - 我担心我需要注册一个本地应用程序。我使用Meteor作为我的堆栈,所以我需要能够使用JS / jQuery。这肯定是可能的... - Rico
1
看起来有人之前在Meteor中遇到了这个问题:https://dev59.com/pWrXa4cB1Zd3GeqPAZE_这对您有帮助吗? - s.gray

1

有一个陨石库旨在解决这个问题。

https://github.com/subhog/meteor-twit

您可以按照文档进行使用:

https://github.com/ttezel/twit

以下是一些示例代码:

if (Meteor.isServer) {
    Meteor.methods({
        twit_get: function() {
            Twit = new TwitMaker({
                consumer_key: 'foo',
                consumer_secret: 'foo',
                access_token: 'foo',
                access_token_secret: 'foo'
            });

            Twit.get(
                'search/tweets',
                {
                    q: 'banana since:2013-12-11',
                    count: 10
                },
                function(err, reply) {
                    console.log(reply);
                });
        }
    });
}

2
你应该更改问题的标题,因为它实际上不是关于jQuery,而是关于Meteor,这种方法仅在使用node.js的服务器端有效。 - Thibaud Arnault

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接