RubyでTwitterのapiを使ってみる
rubyでTwitterのbot作成依頼などがあり、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つの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!!!")
タイムラインや自分のつぶやき、検索など
#タイムライン 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)