RubyでTwitterのapiを使ってみる

rubyTwitterbot作成依頼などがあり、apiなどを使ってみたのでメモ。まあこれまた今さらネタですけど。

環境は、MaxOSX 10.6.7 Ruby 1.9.2


1.Twitterのライブラリをインストール

$ gem install twitter


2.Twitterアプリケーション登録申請


botに使いたいTwitterアカウントでログインしてTwitterアプリケーション登録申請にアクセスして以下の項目を入力します。

アプリケーション名: 任意の名称
アプリケーションの説明: 説明を10文字以上
アプリケーションのウェブサイトURL: 自分のTwitterのURLなど
アプリケーションの種類: クライアントアプリケーションを選択
標準のアクセスタイプ: Read & Writeを選択
Twitterでログインする: チェックをつける

登録完了後に表示される、「Consumer key」と「Consumer secret」をメモしておく。



3.TwitterのOAuth登録


gemでライブラリをインストールして実行

$ gem install oauth get-twitter-oauth-token
$ get-twitter-oauth-token

・Consumer keyとConsumer secretを聞かれるのでメモしておいたのをコピペする。
・ブラウザが起動してアプリケーションを許可するか聞かれるので、許可するとPIN番号が表示される。
・ターミナル側で、PIN入力待ちになっているのでブラウザで表示されたPIN番号をコピペする。
・OAuthのtokenとtoken_secretが表示されるのでメモっておく。



4.rubyTwitterにツイートする


メモった4つのkey情報を以下の該当箇所に入れて実行するとツイートされます。

# -*- coding: utf-8 -*-
require "twitter"

Twitter.configure do |cnf|
  cnf.consumer_key = "Consumer key"
  cnf.consumer_secret = "Consumer secret"
  cnf.oauth_token = "OAuth token"
  cnf.oauth_token_secret = "OAuth token secret"
end

Twitter.update("Hello World!!!")

5.Twitter apiをいろいろ試す


タイムラインや自分のつぶやき、検索など

#タイムライン
Twitter.friends_timeline.each do |res|
  p "#{res.from_user}: #{res.text}"
end


#自分のつぶやき最新10件
options = {"count" => 10}
Twitter.user_timeline("t_ramu", options).each do |res|
  p "#{res.from_user}: #{res.text}"
end

#「rails」をキーワードで検索して日本語のもののみ取得する
search = Twitter::Search.new
search.containing("rails").language("ja").result_type("recent").per_page(5).each do |r|
  p "#{r.from_user}:#{r.text}"
end


参考サイト

30分で誰でも作れるTwitter Bot開発・運用手順 – Ruby Twitter bot | はるかなる熊

File: README — Documentation for twitter (4.8.1)