Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

RubyでTwitter APIを使う方法|ツイートの取得・保存・自動投稿まで解説

RubyでTwitterアプリケーションを作ってみたいと思ったことはありませんか?この記事では、Twitter APIと連携するプログラムの作り方を、特定キーワードの検索や自動返信といった実例とともに、ステップバイステップでわかりやすく解説します。

それでは始めましょう!

事前準備

まず最初に、twitter gemをインストールします。以下のコマンドを実行するだけで完了する、とても簡単な作業です。

gem install twitter

続いて、https://apps.twitter.com/ にアクセスし、新しいアプリケーションを作成します。画面右側の「Create New App」ボタンをクリックしてください。

RubyでTwitter APIを使う方法|ツイートの取得・保存・自動投稿まで解説

表示されたフォームに必要事項を入力します。現時点では入力内容自体はそれほど重要ではないので、仮の値でも問題ありません。参考までに、筆者がこの例で入力した内容は以下の通りです。

RubyでTwitter APIを使う方法|ツイートの取得・保存・自動投稿まで解説

「Website」欄については気にする必要はありません。https://example.com のようなプレースホルダーを入力しておけば大丈夫です。

その後、「Yes, I agree」にチェックを入れて利用規約に同意し、「Create your Twitter application」ボタンをクリックします。

すべてが正しく完了していれば、次のような画面が表示されるはずです。

RubyでTwitter APIを使う方法|ツイートの取得・保存・自動投稿まで解説

次に「Keys and Access Tokens」タブを開きましょう。ここには、Twitter APIへの接続に必要なAPIキーが表示されています。今回の準備作業の目的は、まさにこのキーの取得でした。

なお、現在X(旧Twitter)ではAPIを利用するために開発者アカウントの登録が必要となっており、プランによって利用できる機能やレート制限が異なる点に注意してください。

最後に、以下のテンプレートにご自身のキー情報を当てはめてください。

require 'twitter'

client = Twitter::REST::Client.new do |config|
  config.consumer_key        = "YOUR_CONSUMER_KEY"
  config.consumer_secret     = "YOUR_CONSUMER_SECRET"
  config.access_token        = "YOUR_ACCESS_TOKEN"
  config.access_token_secret = "YOUR_ACCESS_SECRET"
end

下の2つの値(アクセストークン)を取得するには、「Generate access tokens」ボタンをクリックする必要があります。

これでセットアップは完了です。さっそくAPIを使ってみましょう。

ツイートを操作する

セットアップが済めば、client オブジェクトを通じてTwitter APIの全機能にアクセスできるようになります。ここでは例として、@rubyinside アカウントの最新20件のツイートを取得し、後で分析できるようYAMLファイルに保存してみます。

任意のユーザーのタイムラインを取得するには、user_timeline メソッドを使用します。

例:

tweets = client.user_timeline('rubyinside', count: 20)

このメソッドはTweetオブジェクトの配列を返します。では、このオブジェクトはどうやって操作すればよいのでしょうか?

公式ドキュメントを調べるのも良いですが、筆者のおすすめは pry を使う方法です。pry 上でコードを実行すれば、ls Twitter::Tweet コマンドで、対象のオブジェクトやクラスが持つすべてのメソッドを一覧表示できます。

実行結果は次のようになります。

RubyでTwitter APIを使う方法|ツイートの取得・保存・自動投稿まで解説

すると full_text メソッドがあることがわかります。これを使えば、ツイートの本文を出力できます。

tweets.each { |tweet| puts tweet.full_text }

他のメソッドもいろいろ試してみると楽しいですよ 🙂

ツイートをファイルに保存する

取得したツイートは、何に活用できるのでしょうか?たとえば、あとで分析できるようにファイルへ書き出すのが便利です。手軽な方法としては、YAML形式での保存がおすすめです。

require 'yaml'

# ... 途中のコードは省略 ...

File.write('tweets.yml', YAML.dump(tweets))

保存したツイートを読み込むときは、YAML.load_file メソッドを使います。

require 'yaml'
require 'twitter'

tweets = YAML.load_file('tweets.yml')

読み込んだツイートは、APIから取得した直後とまったく同じ形でそのまま使えます。再度リクエストを送り直す必要もありません。便利だと思いませんか? 🙂

ツイートを投稿する

できることはまだまだあります。たとえば、特定のキーワードをつぶやいたユーザーへメッセージを送ってみてはどうでしょうか?

新しいツイートを投稿するには、update メソッドを使います。

client.update("I'm having some fun with the Twitter gem!")

これを応用すると、次のような処理も実現できます。

client.search('#ruby').take(3).each do |tweet|
  client.update("@#{tweet.user} Hey I love Ruby too, what are your favorite blogs? :)")
end

また、ストリーミングAPIを利用すれば、出来事が発生したその瞬間に「リアルタイム」でイベントを受け取ることも可能です。詳細については公式ドキュメントを参照してください。

まとめ

初期設定さえ終わってしまえば、twitter gemのおかげでTwitter APIとの連携はとても簡単です。ぜひあなたも実際に試して、面白いものを作ってみてください!

この記事が役に立ったら、ぜひシェアしてください。今後もこうした記事を書き続ける大きなモチベーションになります 🙂


  1. 【Ruby】プレフィックスツリー(トライ)の実装方法と活用例を徹底解説

    プレフィックスツリー(別名:トライ/Trie)は、単語のリストを効率的に整理し、特定の接頭辞(プレフィックス)で始まる単語を高速に検索できるデータ構造です。 例えば、「ca」という2文字で始まる単語をすべて探したい場合、「cat」や「cape」といった候補を瞬時に見つけることができます。 まずは下の図をご覧ください。 これがプレフィックスツリーです。 ルート(*)から、単語の終端を示すマーク済みノード(e や t など)へと枝を辿っていくことで、1つずつ単語を読み取ることができます。 この記事では、Rubyで独自のプレフィックスツリーを実装する方法と、それを活用して問題を解く方法を詳しく解説

  2. Siriでポッドキャストを操作する方法|検索・再生・再生コントロールを徹底解説

    Siriとは Apple純正の音声アシスタント「Siri」を知らない人はいないでしょう。話しかければこちらの頼みごとを聞いてくれる、頼れる存在です。 ポッドキャストとは ポッドキャストは、インターネットからダウンロードしてスマートフォンやパソコンで楽しめるデジタル音声ファイルのこと。番組を購読(登録)しておけば、最新エピソードが自動的に更新されるため、お気に入り番組を見逃す心配もありません。 一見まったく別のものに思えるこの2つですが、実はSiriとポッドキャストは相性抜群。iPhoneやiPadのSiriを使えば、「ポッドキャスト」アプリにあるお気に入りの番組を簡単に探せるのです。さらに