自動フォロー返しと自動リムーブ
■自動フォロー返しと自動リムーブ
#========================================================
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関連のサイトを見てるが、やっぱり本を買って勉強した方が頭に入りそうかな。