Я использую twitter gem для проекта Rails 4.2, работающего на Ruby 2.2.1. У меня есть следующий код:Twitter Gem for Rails не вернет твиты
def fetch_aisis_writer_tweets
# Cache the tweets and expire after 5 minutes.
data = Rails.cache.fetch([:aisis_twitter_feed, Time.now.to_i/60/5], expires_in: 15.seconds){
tweet_array = [];
tweet = twitter_client.search("#AisisWriter").take(10).each do |tweet|
tweet_array.push(tweet)
end
}
render json: data
end
Что возвращает пустой массив твитов. запуск twitter_client.search("#AisisWriter").take(10)
ничего не возвращает. Как всегда, если мы перейдем к твиттеру и ищем конкретный хэштег, #AisisWriter Мы можем видеть, что я действительно возвращаю множество твитов, содержащих этот хэштег.
Итак, почему приведенный выше код возвращает пустой массив твитов?
Update
Таким образом, некоторые люди ниже предложил мне использовать Streaming API. Поэтому я обновил свой код, чтобы показать новый объект данных, используя пример кода и потоковое api.
def fetch_aisis_writer_tweets
# Cache the tweets and expire after 5 minutes.
data = Rails.cache.fetch([:aisis_twitter_feed, Time.now.to_i/60/5], expires_in: 15.seconds){
tweet_array = [];
tweet = twitter_stream.filter(track: '#AisisWriter') do |streamed_tweet|
tweet_array.push(streamed_tweet)
end
}
render json: data
end
Но, увы, ничего не происходит, консоль просто показывает:
Processing by Api::Internal::TwitterController#fetch_aisis_writer_tweets as */*
и страница просто продолжает пытаться загрузить. В конце дня мне просто нужны последние 10 твитов из этого конкретного тэга.
Если вы внимательно посмотрите на то, что я поставил: Я создал клиент потокового который описанный здесь https://github.com/sferik/twitter/blob/master/examples/Streaming.md в этом примере. Не уверен, что использование другого драгоценного камня поможет, оно также не покажет, как выполнить результат поиска и поток результата. – TheWebs
Вы используете поиск, который не является потоковой точкой конца api. Используйте фильтр. –
Добавлен пример кода для потоковой передачи Api. –