開発したアプリなど一覧

ruby で twitter api を使用する

アフィリエイトリンクを含む場合があります

ruby を使用したシステムで Twitter と連携したいなーと思ったので調べた。Twitter Ruy Gem を使うと良いらしい。使い方をメモしてみる。

sferik/twitter · GitHub

インストール

インストールは gem を使うのが手っ取り早い。

$ gem install twitter

初期設定

以下のように Twitter アプリの Consumer Key と Consumer Secret, ユーザの Access Token, Access Token Secret と共に Twitter::REST::Client を new する。

client = Twitter::REST::Client.new do |config| config.consumer_key = CONSUMER_KEY config.consumer_secret = CONSUMER_SECRET config.access_token = ACCESS_TOKEN config.access_token_secret = ACCESS_TOKEN_SECRET end

Consumer Key と Consumer Secret は Twitter Application Management よりアプリを作成し、取得可能。

Twitter Application Management

Access Token と Access Token Secret はユーザ毎に取得する必要があるが開発者自身のトークンであれば上記のアプリ設定画面にある Keys and Access Tokens より取得可能です。自分しか使わない Twitter Bot などであればそれで十分でしょう。

アプリの所有者と運用するユーザが違う場合且つユーザが自分のものであれば get-twitter-oauth-token を使うと楽に取得できます。これも gem でインストールできます。

jugyo/get-twitter-oauth-token · GitHub

Twitter API を 扱う

client を設定したらあとは以下のように Twitter API にアクセスする事ができます。

ツイートする

ツイートするには update メソッドを使おう。

client.update("I thought what I'd do was, I'd pretend I was one of those deaf-mutes")

メソッド名が update なのは Twitter API で投稿する際の URL が statuses/update だからだろう。

フォロー/アンフォローする

フォローとアンフォローは以下の通り、わかりやすいメソッド名だ。メソッドの引数はユーザ名(screen_name)かユーザIDを取れる。

# follow client.follow("ryomatsu") client.follow(4037051) # unfollow client.unfollow("ryomatsu") client.unfollow(4037051)

ユーザを取得する

user メソッドでユーザの情報を取得する。フォロー時と同じようにユーザ名かユーザIDを指定できる。

user = client.user("ryomatsu")

返り値は User オブジェクトとなる。以下のような感じにユーザの情報へアクセスできる。

user.id # ユーザのID user.screen_name # ユーザ名 user.protected? # ユーザがプロテクト状態かどうか user.tweets_count # ユーザのツイート数を取得 user.followers_count # フォロワーの数 user.friends_count # フォローしている数

タイムラインを取得する

以下のメソッドを使う事で各種タイムラインを取得する。

tl = client.home_timeline # 自分のタイムラインを取得 tl = client.user_timeline("ryomatsu") # 指定したユーザのタイムラインを取得 tl = client.mentions_timeline # メンションを取得

以下のようにやればタイムラインを表示できる。

client.home_timeline.each do |tweet| puts tweet.user.screen_name + ':' + tweet.text end

検索する

検索は search を使う。

client.search('loumo.jp').each do|tweet| puts tweet.user.screen_name + ':' + tweet.text end<

Sponsored Link

コメント

タイトルとURLをコピーしました