読者です 読者をやめる 読者になる 読者になる

ロボット・IT雑食日記

ソフトもハードもいろいろやりたい!やったことを気ままにあげていきます.結構備忘録多め.

Twitterアカウントをbot化して遊んでみる.Rubyからツイート,自動ファボ実装

ruby

なんかお友達がTwitter botで遊んでみてるみたいなので便乗.

rubyからツイート

ottosan84.hatenablog.com

師匠のブログです.これの通りやったらRubyからツイートできると思います.

ただ,gemを gem install twitterとやるよりは,bundlerを使ったほうが良い.

Gemfileと言う名前でbotのディレクトリに以下を記述し,bundle installを行う.

source 'https://rubygems.org'

gem 'twitter'

小さいプログラムでもbundlerを使っておかないと後で悲しいことになる.

bundlerについては以下を参照.

blog.tokoyax.com

自動ファボ

今回,#いいねした人全員フォローするハッシュタグをつけてるツイートを検索し,いいねをつけるプログラムを書きました.

やったことは,searchメソッドを使い,条件に合うツイートを検索します. そして,検索結果をresults配列に格納して,そのツイートをfavoriteメソッドを用いてお気に入りに登録する. この二つだけです.

REST APIを使っているので,上のRubyでのツイートのところで紹介したブログを参考にして,Rubyプログラム上でのログインを行ってください.

require "twitter"
client = Twitter::REST::Client.new do |config|
  config.consumer_key = "自分のConsumer Keyをコピペ"
  config.consumer_secret = "自分のConsumer Secretをコピペ"
  config.access_token = "自分のAccess Tokenをコピペ"
  config.access_token_secret = "自分のAccess Token Secretをコピペ"
end

results = client.search("#いいねした人全員フォローする", :count => 100, :result_type => "recent")

results.attrs[:statuses].each do |tweet|
    id = tweet[:id].to_s
    client.favorite(id)
end

コードを読んでいただくのが早いと思いますが,client.search("検索したい言葉", :count => 件数, :result_type => "recent") とすると,検索したい言葉を件数分,results配列に格納することができます.

Twitterの高度な検索も使用することができるので,client.search("from:@yuki_99_s", :count => 100, :result_type => "recent") とすれば,yuki_99_sさんのツイートから最新の100件を取得することができます.

高度な検索で使用できる演算子に関しては以下を参照してみてください.

http://sharetube.jp/article/800/

またいろいろいじっていきたいと思います.