railsでtwitter APIを扱いたかったのでメモ
環境
- rails(ruby2.1.0, rails4.0.3)でアプリの雛形を作成し、herokuなどのサーバーへdeploy済
twitterのデータを取得する方法
twitterのデータを取得するにはtwitterで提供されているAPIを使用します。
APIにはREST APIとStreaming APIの二つの種類があります。
Streaming APIはツイートや他のソーシャルイベントのためのパワフルでリアルタイムなAPI
REST APIREST APIは、ほとんどのTwitterの機能のシンプルなインターフェースを提供するAPI
まずはREST APIから使用してみます。
Gemfile変更
gem 'twitter'
Gemfileを記載したらgem installを行います。
gem install twitter
twitterのAPIを使うにはTwitter DeveloplerでMy Applicationの登録をする必要があるので、登録していない場合は登録します。
twitterとの連携には、以下の4つのキーが必要です
- API key
- API secret
- Access token
- Access token secret
またこのとき上記で設定するURLをhttp://127.0.0.1/にするとローカル環境でもtwitter APIを取得することができます。
上記の情報を確認したら、ホームのタイムラインを取得するコードをコントローラーに記述します
require 'twitter' client = Twitter::REST::Client.new do |config| config.consumer_key = 'consumer_key' config.consumer_secret = 'consumer_secret' config.oauth_token = 'oauth_token' config.oauth_token_secret = 'oauth_token_secret' end @tweets = [] client.home_timeline(include_entities: true).each do |tw| @tweets << tw end
include_entities: trueでentitiesのオブジェクトを取得することができます。
取得したデータをviewに表示
<% @tweets.each do |tweet| %> <p><%= link_to image_tag(tweet.user.profile_image_url_https) %> <%= tweet.user.name %> <%= tweet.user.screen_name %><%= tweet.user.id %></p> <p><%= tweet.created_at %></p> <p><%= tweet.text %></p> <% if tweet.media? %> <% tweet.media.each do |media| %> <%= image_tag(media.media_url_https) %> <% end %> <% end %> <% end %>
上記のように使うことで、色々な情報が取得できます。
とはいえ、上記の情報を一つ一つDBのカラムに格納するのは面倒なので、jsonをそのままDBに格納するするのが一般的でしょう。
ということで、次回に続きます。
0 件のコメント:
コメントを投稿