Ruby on rails 实时推特流
我正在用RubyonRailsV(2.0.0/4.0.0)编写一个应用程序,试图将一个来自特定源(@u101)的实时推特提要集成到一个基本的HTML页面上,但我不知道如何实现。在谷歌搜索了几个小时后,我看到了一些不同的宝石,它们似乎整合了Twitter(推特流、推特api、推特),然而,我无法让它们中的任何一个发挥作用。我遵循过这样的指南 这一点给了我一个错误:Ruby on rails 实时推特流,ruby-on-rails,ruby,twitter,Ruby On Rails,Ruby,Twitter,我正在用RubyonRailsV(2.0.0/4.0.0)编写一个应用程序,试图将一个来自特定源(@u101)的实时推特提要集成到一个基本的HTML页面上,但我不知道如何实现。在谷歌搜索了几个小时后,我看到了一些不同的宝石,它们似乎整合了Twitter(推特流、推特api、推特),然而,我无法让它们中的任何一个发挥作用。我遵循过这样的指南 这一点给了我一个错误: irb(main):002:0> Tweet.get_latest_new_year_resolution_tweets Nam
irb(main):002:0> Tweet.get_latest_new_year_resolution_tweets
NameError: uninitialized constant Twitter::Search
from C:/Sites/EasyBakeOven/blog/app/models/tweet.rb:6:in `get_latest_new
_year_resolution_tweets'
我不明白。如果有人能带我走过必要的步骤来实现我的目标,或者为我指明正确的方向,我会非常感激
更新:
型号:tweet.rb
class Tweet < ActiveRecord::Base
#A method to grab latest tweets from Twitter
def self.get_latest_new_year_resolution_tweets
#create a Twitter Search object
search = Twitter::REST::Client.new
#grab recent 100 tweets which contain 'new year resolution' words, and loop each of them
search.containing("u101").result_type("recent").per_page(100).fetch.each do |tweet_results|
#parsing the string 'created_at' to DateTime object
twitter_created_at = DateTime.parse(tweet_results.created_at)
#making sure we are not saving exact same tweet from a person again
unless Tweet.exists?(['twitter_created_at = ? AND from_user_id_str = ?', DateTime.parse(tweet_results.created_at), tweet_results.from_user_id_str])
#finally creating the tweet record
Tweet.create!({
:from_user => tweet_results.from_user,
:from_user_id_str => tweet_results.from_user_id_str,
:profile_image_url => tweet_results.profile_image_url,
:text => tweet_results.text,
:twitter_created_at => twitter_created_at
})
end
end
end
end
class Tweettweet_结果。from_user,
:from_user\u id\u str=>tweet\u结果。from_user\u id\u str,
:profile\u image\u url=>tweet\u results.profile\u image\u url,
:text=>tweet_results.text,
:twitter\u created\u at=>twitter\u created\u at
})
结束
结束
结束
结束
tweets_controller.rb
class TweetsController < ApplicationController
def index
#Get the tweets (records) from the model Ordered by 'twitter_created_at' descending
@tweets = Tweet.order("twitter_created_at desc")
end
end
class TweetsController
index.html.rrb:
<h1>Tweets#index</h1>
<div id="container">
<ul>
<% @tweets.each do |tweet| %>
<li class="<%=cycle('odd', '')%>">
<%= link_to tweet.from_user, "http://twitter.com/#{tweet.from_user}", :class => "username", :target => "_blank" %>
<div class="tweet_text_area">
<div class="tweet_text">
<%= tweet.text %>
</div>
<div class="tweet_created_at">
<%= time_ago_in_words tweet.twitter_created_at %> ago
</div>
</div>
</li>
<% end %>
</ul>
</div>
Tweets#索引
- “\u blank”%>
以前
此外,我还尝试使用“#u101”显示推文使用(JS)(无gems)
这是通过获取一个小部件(它是实时的并且完全受Twitter支持)并解析出您可能不想要的任何样式/HTML来实现的。我们已经实施了多次:
#app/assets/javascripts/twitterfetch.js
[[twitter fetcher JS here]]
#app/assets/javascripts/application.js
//= require twitterfetch
$(function() {
twitterFetcher.fetch('WIDGET_ID', 'twitter_feed', 3, true, true, true, '', false, handleTweets, false);
function handleTweets(tweets){
var x = tweets.length;
var n = 0;
var element = document.getElementById('twitter_feed');
var html = '<ul>';
while(n < x) {
html += '<li>' + tweets[n] + '</li>';
n++;
}
html += '</ul>';
element.innerHTML = html;
};
});
#app/assets/javascripts/twitterfetch.js
[[twitter fetcher JS here]]
#app/assets/javascripts/application.js
//=需要twitterfetch
$(函数(){
fetch('WIDGET_ID','twitter_feed',3,true,true,true',false,handleTweets,false);
功能手机短信(tweets){
var x=tweets.length;
var n=0;
var element=document.getElementById('twitter_提要');
var html='';
而(n'+推特[n]+'';
n++;
}
html+='
';
element.innerHTML=html;
};
});
如果你想用这种方法,我可以帮你更多
实时流媒体 twitter的“实时”流媒体有几个问题:
#app/assets/javascripts/twitterfetch.js
[[twitter fetcher JS here]]
#app/assets/javascripts/application.js
//= require twitterfetch
$(function() {
twitterFetcher.fetch('WIDGET_ID', 'twitter_feed', 3, true, true, true, '', false, handleTweets, false);
function handleTweets(tweets){
var x = tweets.length;
var n = 0;
var element = document.getElementById('twitter_feed');
var html = '<ul>';
while(n < x) {
html += '<li>' + tweets[n] + '</li>';
n++;
}
html += '</ul>';
element.innerHTML = html;
};
});
#app/assets/javascripts/twitterfetch.js
[[twitter fetcher JS here]]
#app/assets/javascripts/application.js
//=需要twitterfetch
$(函数(){
fetch('WIDGET_ID','twitter_feed',3,true,true,true',false,handleTweets,false);
功能手机短信(tweets){
var x=tweets.length;
var n=0;
var element=document.getElementById('twitter_提要');
var html='';
而(n'+推特[n]+'';
n++;
}
html+='
';
element.innerHTML=html;
};
});
如果你想用这种方法,我可以帮你更多
实时流媒体 twitter的“实时”流媒体有几个问题:
#app/assets/javascripts/twitterfetch.js
[[twitter fetcher JS here]]
#app/assets/javascripts/application.js
//= require twitterfetch
$(function() {
twitterFetcher.fetch('WIDGET_ID', 'twitter_feed', 3, true, true, true, '', false, handleTweets, false);
function handleTweets(tweets){
var x = tweets.length;
var n = 0;
var element = document.getElementById('twitter_feed');
var html = '<ul>';
while(n < x) {
html += '<li>' + tweets[n] + '</li>';
n++;
}
html += '</ul>';
element.innerHTML = html;
};
});
#app/assets/javascripts/twitterfetch.js
[[twitter fetcher JS here]]
#app/assets/javascripts/application.js
//=需要twitterfetch
$(函数(){
fetch('WIDGET_ID','twitter_feed',3,true,true,true',false,handleTweets,false);
功能手机短信(tweets){
var x=tweets.length;
var n=0;
var element=document.getElementById('twitter_提要');
var html='';
而(n'+推特[n]+'';
n++;
}
html+='
';
element.innerHTML=html;
};
});
如果你想用这种方法,我可以帮你更多