Twitter User Streams APIを使ってみる
やってみようやってみよう思いながらずっとやっていなかったTwitterのUser Streams APIを使ってみました。こうやってまたRuby熱が再燃してるのは札幌Ruby会議03に参加したおかげです。やっぱりあぁいうイベントに参加するとモチベーションが高まりますねー。本来はそのモチベーションをいつも維持しなきゃいけないのかも知れないけれど、まぁ、頑張ります。
で、あちこちのWebサイトを参考にしながら作ったのが以下。多分Tweet以外のイベントも取得出来ると思うんだけど、ソレは次回の課題として、とりあえずFriends_timelineのTweetを取得して流しっぱなしにします。
タイムラインを流し読みするのは楽しいのですねぇ。特定のキーワードだけ色変えたり太字にして表示とか出来ると面白そうだな。このAPIを使った次のステップも考えてみようと思います。
続きを書きました→Twitter User Streams APIを「より一層」使ってみる
で、あちこちのWebサイトを参考にしながら作ったのが以下。多分Tweet以外のイベントも取得出来ると思うんだけど、ソレは次回の課題として、とりあえずFriends_timelineのTweetを取得して流しっぱなしにします。
タイムラインを流し読みするのは楽しいのですねぇ。特定のキーワードだけ色変えたり太字にして表示とか出来ると面白そうだな。このAPIを使った次のステップも考えてみようと思います。
#!/usr/bin/ruby -Ku require 'rubygems' require 'oauth' require 'net/https' require 'json' # OAuth 認証データ CONSUMER_KEY = "HOGEHOGE" CONSUMER_SECRET = "HOGEHOGE" ACCESS_TOKEN = "HOGEHOGE" ACCESS_TOKEN_SECRET = "HOGEHOGE" consumer = OAuth::Consumer.new( CONSUMER_KEY, CONSUMER_SECRET, :site => 'http://twitter.com' ) token = OAuth::AccessToken.new( consumer, ACCESS_TOKEN, ACCESS_TOKEN_SECRET ) # http://dev.twitter.com/pages/user_streams uri = URI.parse('https://userstream.twitter.com/2/user.json') begin # userstreamにはSSLでアクセスする https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_PEER https.verify_depth = 5 # 接続先サーバのルートCA証明書をダウンロードしてきて指定 https.ca_file = './ca.cer' https.start do |https| req = Net::HTTP::Get.new(uri.request_uri) req.oauth!(https, consumer, token) https.request(req) do |res| res.read_body do |chunk| # chunked = falseなら例外を発生 raise 'Response is not chunked' unless res.chunked? # JSONのパースに失敗したらスキップして次へ status = JSON.parse(chunk) rescue next # textパラメータを含まないものはスキップして次へ next unless status['text'] user = status['user'] puts "@" + "#{user['screen_name']}: #{status['text']}" end end end rescue print "RuntimeError: ", $!, "\n"; end
続きを書きました→Twitter User Streams APIを「より一層」使ってみる
島田 浩二,設樂 洋爾,村田 賢太,前田 智樹,谷口 文威
翔泳社
売り上げランキング: 94811
翔泳社
売り上げランキング: 94811