Class: TwitterClient
- Inherits:
-
Object
- Object
- TwitterClient
- Defined in:
- lib/slack_twitter_egosa/twitter_client.rb
Instance Method Summary collapse
- #home_timeline ⇒ Object
-
#initialize(consumer_key:, consumer_secret:, access_token:, access_token_secret:, search_query:) ⇒ TwitterClient
constructor
A new instance of TwitterClient.
- #search ⇒ Object
Constructor Details
#initialize(consumer_key:, consumer_secret:, access_token:, access_token_secret:, search_query:) ⇒ TwitterClient
Returns a new instance of TwitterClient.
6 7 8 9 10 11 12 13 14 |
# File 'lib/slack_twitter_egosa/twitter_client.rb', line 6 def initialize(consumer_key:, consumer_secret:, access_token:, access_token_secret:, search_query:) @client = Twitter::REST::Client.new do |config| config.consumer_key = consumer_key config.consumer_secret = consumer_secret config.access_token = access_token config.access_token_secret = access_token_secret end @search_query = search_query end |
Instance Method Details
#home_timeline ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/slack_twitter_egosa/twitter_client.rb', line 16 def home_timeline is_first_fetch = @home_timeline_since_id.nil? params = { count: 200, tweet_mode: 'extended' } params[:since_id] = @home_timeline_since_id if @home_timeline_since_id statuses = @client.home_timeline(params).to_a @home_timeline_since_id = statuses.first.id unless statuses.empty? # Tweets acquired for the first time are not subject to notification return [] if is_first_fetch statuses rescue Twitter::Error::TooManyRequests, HTTP::ConnectionError => e warn "home_timeline: #{e.inspect}" [] end |
#search ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/slack_twitter_egosa/twitter_client.rb', line 33 def search return [] if @search_query.empty? is_first_fetch = @search_since_id.nil? params = { result_type: 'recent', count: 100, tweet_mode: 'extended' } params[:since_id] = @search_since_id if @search_since_id statuses = @client.search(@search_query, params).to_a @search_since_id = statuses.first.id unless statuses.empty? # Tweets acquired for the first time are not subject to notification return [] if is_first_fetch statuses rescue Twitter::Error::TooManyRequests, HTTP::ConnectionError => e warn "search: #{e.inspect}" [] end |