2016-05-03 75 views
1

即時通訊尋找一個Twitter API,顯示一個特定的詞可以說出現在一個html網頁上的「奶酪」,顯示最新的推文列表,提及奶酪,並更新所以任何新的推文使用奶酪出現在列表中。任何人都可以幫助我做到這一點。我知道人們會建議PHP,但我只想使用Javascript。使用Javascript的Twitter API api

+1

你是指nodeJS執行hashtag搜索? – Yerken

+0

恰好是,但在網頁上顯示而不是在cmd提示符 – skyrimveteran

+0

你知道Twitter REST API是如何工作的嗎? – Yerken

回答

2

我建議你使用node-twitter npm包,這應該大大簡化任務。 Link here

如下您可以使用它(nodeJS代碼如下):

import Twitter from 'twitter'; 
 

 
var client = new Twitter({ 
 
    consumer_key: keys.consumer_key, 
 
    consumer_secret: keys.consumer_secret, 
 
    access_token_key: keys.access_token_key, 
 
    access_token_secret: keys.access_token_secret 
 
}); 
 

 

 
module.exports.getLatestTweetsByHashtag = function(hashtags, callback){ 
 
    //here hashtags is an array in the form: [#cheese, #bacon] 
 
    var hashtagsToString = hashtags.join(" "); 
 
    var encodedHashtags = encodeURIComponent(hashtags).replace(/%20/g, '+'); 
 
    client.get('search/tweets.json', { 
 
    q: encodedHashtags, 
 
    result_type: 'recent', 
 
    include_entities: true 
 
    }, function(error, tweets, response) { 
 
    if (error) return callback(error); 
 
    else return callback(undefined, tweets.statuses); 
 
    }); 
 
}

結果可以從方法使用回調來獲得(隨意「promisify`它,如果你願望)

使用方法如下:

require('./my-twitter-module').getLatestTweetsByHashtag(['#cheese'], function(err, tweets){ 
 
    //do error handling 
 
    //pass it back to client side, tweets are already json object 
 
    res.json(tweets); 
 
});

這會給你一個包含所有的井號標籤的最近期]鳴叫的名單包括陣列

編輯 在情況下,如果你正在尋找流API實現的:

client.stream('statuses/filter', {track: 'cheese'}, function(stream) { 
 
    stream.on('data', function(tweet) { 
 
    console.log(tweet.text); 
 
    }); 
 

 
    stream.on('error', function(error) { 
 
    throw error; 
 
    }); 
 
});