"twitter"モジュールを使用しています。
※"twitter"モジュールの仕様については、こちらのサイトが参考になりました。
●事前準備
・gemでtwitterモジュールをインストールする。
※参考:「さくらレンタルサーバにruby,gemをインストールする」
・TwitterでOauth認証(Twitterの外部アプリケーション認証)を済ませておく。
※参考:「Ruby Twitter Gem簡易リファレンス」
●注意点
・現時点(2011年1月)のTwitterでは、日本語検索が万全ではありません。例えば「焼酎」を検索する場合、「焼酎」で検索してもヒットしないツイートが、「焼 酎」と1文字ずつスペースで区切って検索するとヒットしたりします。
以下、サンプルコードではそういった現象にも対応しています。
※さくらレンタルサーバ上で動作確認済み。
#!/usr/local/bin/ruby -Ku #焼酎を検索し、リツイートするTwitterのbot require "rubygems" require 'twitter' require 'oauth' CONSUMER_KEY = "~~~" #取得した"Consumer key" CONSUMER_SECRET = "~~~" #取得した"Consumer secret" ACCESS_TOKEN = '~~~' #取得した"Access token" ACCESS_TOKEN_SECRET = '~~~'#取得した"Access token secret" exc="" begin token = Twitter::OAuth.new(CONSUMER_KEY, CONSUMER_SECRET) token.authorize_from_access( ACCESS_TOKEN, ACCESS_TOKEN_SECRET ) tw = Twitter::Base.new(token) rescue=>exc p exc; exit end #1、焼 酎で検索 Twitter::Search.new('焼 酎').each do |r| #リツイートする if r.class == Hashie::Mash then #再度ツイートの文字列が「焼酎」を含むかチェック if r["text"] =~ /焼酎/ exc="" begin p r["id"].to_s tw.retweet(r["id"].to_s) rescue=>exc p "err::焼 酎::"+exc end end end end #負荷軽減のため、5秒スリープする sleep(5) #2、「焼酎」で検索 Twitter::Search.new('焼酎').each do |r| #リツイートする if r.class == Hashie::Mash then exc="" begin p r["id"].to_s tw.retweet(r["id"].to_s) rescue=>exc p "err::焼酎::"+exc end end end p "finish!"
Rubyについてやりたいことのほとんどが網羅されている逆引き本。これ一冊手元にあればネットで調べるより断然作業がはかどります。ネット上でまだ情報が少ない1.9系についてのサンプルコードも載っているので便利です。
0 件のコメント :
コメントを投稿