2013-12-22 222 views
3

我對Meteor很陌生,並且總是使用Twitter API初學者。我在Meteor創建一個簡單的應用程序僅用於演示目的。我需要能夠搜索Twitter的特定主題標籤。我只需要能夠使用該hashtag獲取推文並將它們顯示在列表中。超級簡單。Twitter API 1.1 Oauth w /流星

我註冊了我的應用程序,收到了鑰匙等。我只需要看看從Oauth之前開始接收Twitter搜索結果的代碼流示例。

我將在本地運行此應用程序,只需要能夠發送GET請求並接收REST響應。

我見過有關如何由於安全風險而不支持jQuery的文檔。由於我的後端是JS,我需要能夠用JS做到這一點。

任何人都可以提供關於如何做到這一點,我可以看到代碼示例的文檔?

回答

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

你應該改變你的問題的標題,因爲它實際上不是w/jQuery,而是w/Meteor,並且這個方法只能在服務器端使用node.js –

2

好問題。你是正確的,Twitter 1.1 API requires oAuth tokens even for simple GET請求像你需要的那個。是的,請求一個oAuth密鑰和來自twitter dev site的祕密對於本地運行的項目來說可能看起來過於矯枉過正,但是它的每個API端點都需要它。

一旦您擁有oAuth使用者密鑰和密鑰,您就可以開始進行API調用。由於安全原因,Twitter不支持在twitter開發人員網站上使用google搜索。通過JQuery發送oAuth信譽不受Twitter支持。您可以閱讀關於here的更多信息。

我不確定你需要怎樣處理Twitter數據,所以我沒有爲oAuth嵌入任何代碼示例。與此同時,在您考慮如何實施您的解決方案時,請查看how oAuth works。 PHP?蟒蛇?紅寶石?也許這些oAuth code samples from Twitter是一個很好的開始?

+0

感謝您的信息 - 我怕我需要註冊本地應用程序。我使用Meteor作爲我的堆棧,所以我需要能夠使用JS/jQuery。當然,這是可能的... – Rico

+1

看起來有人以前有過流星這個問題:http://stackoverflow.com/questions/13273235/how-to-post-a-tweet-with-meteor-js-twitter-and -oauth 對您有幫助嗎? –

3

由於Twitter API v1.1(2013年5月),未經OAuth授權就無法進行搜索。

如果您想以簡單的方式在客戶端執行操作,您可能需要使用OAuth.io

我使用Twitter API

的代碼只是做an example in jsfiddle做一個簡單的搜索非常簡單:

//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 
    }) 
})