柴ブログ

プログラミング奮闘記

RubyでTwitter APIを叩いてみる

はじめに

Twitter APIを使用したRailsアプリを作成しており、初めてAPIを叩いたので自分用の備忘録。

試験的にRailsアプリではなくRubyプログラムでAPIを叩いてみました。

Twitter APIの申請

APIの利用には、Twitterアカウントを開発者として登録することと、APIを使用したいアプリの登録の2つが必要になります。

僕は事前にアプリ開発用のTwitterアカウントを新たに作成し、以下のページから必要事項を入力して申請ました。

Twitter Developers

詳しい入力内容等は、少し古いですが以下のページを参考にしました。

申請後、API KeyとAPI Secretが発行されるので、それをメモ。

また、Access TokenとAccess Token Secretを発行できるようになるので、発行し、メモ。

Twitter gemでAPIを叩く

APIを叩くのにTwitter gemを利用。

これをインストールし、Rubyプログラム内で使用する。

今回は「いいね」したツイートを取得したいので、以下のようにコードを書きました。

require "pp"
require "twitter"

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 Token Secret"
end

# 「いいね」したツイートの配列
pp client.favorites

結果は以下の通り。IDは適当。

[#<Twitter::Tweet id=1>,
 #<Twitter::Tweet id=2>,
 #<Twitter::Tweet id=3>,
 #<Twitter::Tweet id=4>]

各々のツイートの情報を取得してみる。

favs = client.favorites
favs.each do |fav|
  # ツイートの情報一覧
  pp fav.attrs
  # ツイートのURL
  puts fav.url
  # ツイートしたユーザーのアイコン画像
  puts fav.attrs[:user][:profile_image_url_https]
end

実行結果に関して、fav.attrsは文字数が多いのでここでは割愛しますが、ツイートの情報、そのツイートをしたユーザーの情報など、かなり大量の情報がjson形式で返ってきました。

fav.attrs以外の実行結果は以下のよう。

# ツイートURL
https://twitter.com/ユーザー名/status/ツイートID

# ツイートしたユーザーのアイコン画像
"https://pbs.twimg.com/profile_images/hoge/fuga.jpg"

こんな感じで、自分の取得したい情報を取得できました。

あとはこれをRailsアプリに落とし込んでいこうと思います。

参考