Ruby gem twitterでTwitterAPIアクセスする


gem twitteを利用するとTwitterのAPIに簡単にアクセスできる。予め、consumer keyとaccess tokenの各keyを取得しているものとする。

gem

各APIキーをハードコードするとキーが漏洩してしまうので、.envに記載できるようdotenv-railsも併せて導入しておく

gem 'twitter'
gem 'dotenv-rails'
.env

.envファイルを作成し、APIキーを記述する

project/.env

TWITTER_CONSUMER_KEY = "****"
TWITTER_CONSUMER_SECRET = "****"
TWITTER_ACCESS_TOKEN = "****"
TWITTER_ACCESS_TOKEN_SECRET = "****"

git管理している場合はignoreも忘れずに。 project/.gitignore

.env
twitterクライアントの初期化

各APIキーを与える。

def twitter_client
  return client = Twitter::REST::Client.new do |config|
    config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
    config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"]
    config.access_token = ENV["TWITTER_ACCESS_TOKEN"]
    config.access_token_secret = ENV["TWITTER_ACCESS_TOKEN_SECRET"]
  end
end
APIへアクセス

API所有アカウントのタイムラインを取得

def index
  client = twitter_client
  @tweets = client.home_timeline
end
出力例

ユーザ名 @id テキストを表示

<% @tweets.each do |tweet| %>
  <%= "#{tweet.attrs[:user][:name]} @#{tweet.attrs[:user][:screen_name]}" %>
  <p><%= tweet.attrs[:text] %></p>
<% end %>

github.com

ドキュメント

www.rubydoc.info

おすすめのRuby本