その時凡人が動いた

凡人が凡人らしからぬことをするために日々奮闘するブログ

【Ruby】TwitterAPIで特定のワードを呟いてる人をフォローする方法


RubyTwitterAPIを叩いて特定のワードを含んだツイートを取得し、そのツイートを呟いたユーザをフォローするプログラムを書いていきます。

環境

実装手順

Twitterapiを使うのに便利なTwitter gemをインストール

gem install twitter

Twitterのアプリ登録

  1. Twitter Developers でアプリ登録をする。
    ログイン → 右上 の[My Applications] → [Create a new application]

  2. アプリの設定

    • Name:任意
    • Description:任意
    • Website:適当なURL
    • Callback URL:適当なURL
      ※WebsiteとCallbackURLはhttp://localhost:3000 だとエラーになるので、https://www.google.co.jpでも何でもいいのでURLを入力してください。
  3. [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

ちなみにTwitterAPIの仕様上、15分につき15人までしかフォロー出来ないので注意して下さい。 以上です。お疲れさまでした!!