自動フォロー返しと自動リムーブ | ど素人のTwitter_bot作成日誌

自動フォロー返しと自動リムーブ

■自動フォロー返しと自動リムーブ


#========================================================
require 'rubygems'
require 'twitter_oauth'
require 'kconv'

#==========ここから接続の記述(*には自分の設定を入れる)===================


CONSUMER_KEY = '******'
CONSUMER_SECRET = '******'
ACCESS_TOKEN = '******'
ACCESS_TOKEN_SECRET = '******'

client = TwitterOAuth::Client.new(
:consumer_key => CONSUMER_KEY,
:consumer_secret => CONSUMER_SECRET,
:token => ACCESS_TOKEN,
:secret => ACCESS_TOKEN_SECRET
)

#==========ここまで接続の記述===================


#自動フォローする
#フォローされている人 - 自分がフォローしている人

(client.followers - client.friends).each do | t |
follower_id = t["id"]
name = t["screen_name"]
#puts "#{follower_id}:#{name}"
client.friend("#{follower_id}")
end


#リムーブする
#自分がフォローしている人- フォローされている人

(client.friends - client.followers ).each do | t |
follower_id = t["id"]
name = t["screen_name"]
#puts "#{follower_id}:#{name}"
client.unfriend("#{follower_id}")
end
#========================================================


改善点

  ・ツィート非公開の人はフォローできない。
  ・Twitterで1回のリクエストで取得できるのが100件。
   100件以上フォロワーが増えている場合はすべてをフォローできない。
  ・タスクで約24時間周期で自動フォロー・リフォローする様に設定する必要がある。


   #puts "#{follower_id}:#{name}"はテスト用の記載。



■RUBYでリストの比較ってどうやるの?


自動フォロー返しについて考えると・・・・


 1.APIフォローしているユーザーのリストを読み込む。
 2.API自分のフォローワーのリストを読み込む。
 3.1と2を比較してフォローしていないIDのユーザーをフォローする


自動フォロー返しを文章にすると3行だけども・・・・・

配列を2つ作って、該当するidがあるかどうかを
forとかwhileで、配列[i]・[j]をぐるぐる回して比較するのかと思い、
Array#size、Array#lengthだのRubyの配列数をとるのを調べていたらなんと・・・・・


「・Rubyは配列同士の引き算ができるので、引き算で比較する。」
http://www.nikkei.com/tech/business/article/g=96958A9C93819499E0E5E2E3888DE0E5E2E7E0E2E3E2E2E2E2E2E2E2;df=3;p=9694E1E2E2E6E0E2E3E2E2E5E7E6


Rubyどうなってんのwwww

楽チンすぎだろww



■フォローをはずす「unfriend」


フォローする場合はの例が本に記載してあったが、
フォロー解除については記載がなかったので、下記を参照。

http://d.hatena.ne.jp/ten-you/20100818/1282148976



フォローする。>> [Twitterクライアントクラス].friend([ユーザID又はスクリーンネーム])
フォロー解除する。>> [Twitterクライアントクラス].unfriend([ユーザID又はスクリーンネーム])


friendの反対はunfriendって事らしい!


friendships/destroyを調べていても、
unfriendについて書いてある所が全然なくて結構ロスった。


TwitterBot作り、少しでも動くのを見ると楽しいな~と実感できて初心者にはいいな。
でもRuby基礎を勉強しないと色々と時間がかかってダメかも。
Ruby関連のサイトを見てるが、やっぱり本を買って勉強した方が頭に入りそうかな。