そういうことだったんですね

いろいろ調べたり学んだりしたことを忘れないように書き連ねています

Ruby - Twitter と連携する

 

Twitter には REST API があり、ツイートやフォロー、タイムラインの取得などアプリに組み込むことができます。

フォローする、リツイートするなどの機能も見かけますね。

curl で十分、といわれるかもしれませんが、その準備は結構面倒なので、

それを解決するRubytwitter ライブラリについて紹介します。

https://github.com/sferik/twitter

 

 

TwitterAPIアカウントを準備する

Twitterのアカウントが必要です。個人のアカウントでもいいですが、連携してたりすると恥をかいたりしますので、開発用のアカウントを作成します。

https://twitter.com/

一度ログオフしてからアカウントを作成します。

 

TwitterのDeveloperサイトにアプリケーションを登録する

https://dev.twitter.com/apps にアクセスし、

Username/Passwordは新規作成したアカウントを使ってログインします。

 

f:id:babiy3104:20130904130205p:plain

 

 

次の画面が表示されます。Create a new application ボタン をクリックします。

f:id:babiy3104:20130904130404p:plain

 

アプリケーション情報の入力画面に登録します。

Name:  アプリケーションの名前を32文字以内で指定します(twitterを含んではダメ)

Description: アプリケーションの説明文を記述します。

Website: ウェブサイトのURIを記述します

f:id:babiy3104:20130904130913p:plain

以下の画面が表示されます。

Consumer keyとConsumer secretがすでに設定されています。

確認してください。

f:id:babiy3104:20130904132153p:plain

 

 

べージ下部にある Your access token  の領域を確認します。Create my access token ボタンをクリックして、access token を作成します。クリック後作成が完了します。

f:id:babiy3104:20130904132630p:plain

 

 

数秒後にページを再読込するとYour access token の領域に、Access TokenとAccess Token Secret が表示されます。

f:id:babiy3104:20130904133327p:plain

 

初期状態でのAccess level はRead only となっています。Read-Writeモードにするには以下には次の手順を行います。

  1. タブメニューの Settings をクリックします。Application Type領域のモードを Read-Writeに変更し、ページ下部のUpdateボタンをクリックします
  2. タブメニューの Details をクリックします。Your access token 領域の Recreate my access token をクリックします。

 

インストール

rubytwitterライブラリをインストールします

gem install twitter

現時点での最新版は 4.8.1 です。

使い方

設定

Twitter.configure メソッドでキー・トークン類を登録する

Twitter.configiure do |config|
  config.consumer_key = <consumer_key>
  config.consumer_secret = <consumer_secret>
  config.oauth_token = <access_token>
  config.oauth_token_secret = <access_token_secret>
end
認証済みユーザでツイートする
Twitter.update "ツイートなう"
フォローする
Twitter.follow "user_name"  (ユーザIDでも可)
ユーザのプロフィールを取得する
user = Twitter.user "user_name"
user # Twitter::User
user.id # ユーザID
user.name # ユーザ名
user.screen_name # スクリーン名 (@hogehoge の hogehoge)
user.created_at # アカウント作成日
user.description # ユーザの名称
フォロワーのリストを取得する
followers = Twitter.followers "user_name"
followers # Twitter::cursor