Rails 的 Twitter Gem 不会带回推文
Twitter Gem for Rails wont bring back Tweets
我在 Ruby 2.2.1 上将 twitter gem 用于 Rails 4.2 项目 运行。我有以下代码:
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)
returns 没什么。如果我们去推特搜索特定的主题标签,#AisisWriter 我们可以看到我确实返回了大量包含该主题标签的推文。
那么为什么上面的代码返回一个空的推文数组?
更新
所以下面有人建议我用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://dev.twitter.com/rest/public/search:
Before getting involved, it’s important to know that the Search API is focused on relevance and not completeness. This means that some Tweets and users may be missing from search results. If you want to match for completeness you should consider using a Streaming API instead.
这可以解释为什么 twitter_client.search("#AisisWriter").take(10)
返回一个空数组。
twitter_client.search
不是流 API 端点。
假设 twitter_client
被定义为一个 Twitter::Streaming::Client
对象,以下应该有效(假设有新推文 #AisisWriter
:
twitter_client.filter(track: "#AisisWriter") do |object|
puts object.text if object.is_a?(Twitter::Tweet)
end
我在 Ruby 2.2.1 上将 twitter gem 用于 Rails 4.2 项目 运行。我有以下代码:
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)
returns 没什么。如果我们去推特搜索特定的主题标签,#AisisWriter 我们可以看到我确实返回了大量包含该主题标签的推文。
那么为什么上面的代码返回一个空的推文数组?
更新
所以下面有人建议我用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://dev.twitter.com/rest/public/search:
Before getting involved, it’s important to know that the Search API is focused on relevance and not completeness. This means that some Tweets and users may be missing from search results. If you want to match for completeness you should consider using a Streaming API instead.
这可以解释为什么 twitter_client.search("#AisisWriter").take(10)
返回一个空数组。
twitter_client.search
不是流 API 端点。
假设 twitter_client
被定义为一个 Twitter::Streaming::Client
对象,以下应该有效(假设有新推文 #AisisWriter
:
twitter_client.filter(track: "#AisisWriter") do |object|
puts object.text if object.is_a?(Twitter::Tweet)
end