2014年2月28日金曜日

rails4 twitter APIを操作する その2 timeLineを取得

railsでtwitter APIを扱いたかったのでメモ

環境

  • rails(ruby2.1.0, rails4.0.3)でアプリの雛形を作成し、herokuなどのサーバーへdeploy済

twitterのデータを取得する方法

twitterのデータを取得するにはtwitterで提供されているAPIを使用します。
APIにはREST APIとStreaming APIの二つの種類があります。

Streaming API

Streaming APIはツイートや他のソーシャルイベントのためのパワフルでリアルタイムなAPI

REST API

REST 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 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...