RubyでTwitterのAPIを叩いて特定のワードを含んだツイートを取得し、そのツイートを呟いたユーザをフォローするプログラムを書いていきます。
環境
- Ruby 2.1.1p76
- Twitter gem (v5.9.0)
実装手順
Twitterのapiを使うのに便利なTwitter gemをインストール
gem install twitter
Twitterのアプリ登録
-
Twitter Developers でアプリ登録をする。
ログイン → 右上 の[My Applications] → [Create a new application] -
アプリの設定
- Name:任意
- Description:任意
- Website:適当なURL
- Callback URL:適当なURL
※WebsiteとCallbackURLはhttp://localhost:3000 だとエラーになるので、https://www.google.co.jpでも何でもいいのでURLを入力してください。
-
[API Keys] → API key, API secret
これらをあとで使います。
設定
client = Twitter::REST::Client.new do |config|
config.consumer_key = "API key"
config.consumer_secret = "API secret"
config.access_token = "ユーザのaccess token"
config.access_token_secret = "ユーザのaccess secret"
end
Tweetを取得し、つぶやいたユーザをフォロー
# 「バルス」を含むつぶやきを15件取得し、フォロー
client.search("バルス").take(15).each do |tweet|
client.follow(tweet.user.id)
end
# @justinbieberへのリプで、「marry me」を含むつぶやきを15件取得し、フォロー
client.search("to:justinbieber marry me").take(15).each do |tweet|
client.follow(tweet.user.id)
end
# 「#ruby」を含むつぶやきで日本語のものを15件取得し、フォロー
client.search("#ruby", lang: "ja").take(15).each do |tweet|
client.follow(tweet.user.id)
end
ちなみにTwitterのAPIの仕様上、15分につき15人までしかフォロー出来ないので注意して下さい。
以上です。お疲れさまでした!!