ツイートをリアルタイムに検索し取得する (Ruby)
OAuth対応だとか、数年間でAPIの様式がコロコロ変わった印象のTwitter。
Rubyだとどう処理できるのか気になった。
Gem"Twitter" を使う
「特定のキーワードにマッチするツイートをリアルタイム取得する」方法。Twitterの検索は、データをリアルタイムに取得するAPIと、リアルタイムじゃないけど過去を含めて検索したりできるAPIの2通りがあって、今回はリアルタイム側を使う。
このモジュール1つで完結するのね…すげえ。
require "twitter" client = Twitter::Streaming::Client.new do |config| config.consumer_key = "" config.consumer_secret = "" config.access_token = "" config.access_token_secret = "" end keywords = "眠い,おやすみ" options = { :language => 'ja', :track => keywords } client.filter(options) do |object| if object.is_a?(Twitter::Tweet) printf "%s / %s\n %s\n\n", object.user.screen_name, object.user.name, object.text.gsub("\n", "\n ") end end
config部分はTwitterの開発者ページ*1の「Manage My Apps」からプログラム登録して設定する。
trackに指定しているキーワードは、カンマ区切りだとor検索、スペース区切りだとAND検索になる様子。その他の詳しいフィルタリングオプションは公式のAPI説明*2参照。