めもめも のーと

ハマったこととか、覚えたこととか

ruby で TwitterAPI使ってみた

あまりにも更新を放置しすぎたので、なんでもいいからネタを。。 既出すぎますが、自分のメモに。

rubytwitter apiを使ってみた際のメモ。

環境

ruby2.0.0
rbenv 0.4
Ubuntu 12.04.3 LTS

※事前にTwitterのアカウントを取得しておくこと。

$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]

$ rbenv --version
rbenv 0.4.0-55-gcaa4a8e


Twitterのgemをインストール
$ rbenv exec gem install twitter --no-ri --no-rdoc
$ rbenv exec gem install oauth get-twitter-oauth-token --no-ri --no-rdoc
$ rbenv rehash 
Twitterアプリ登録

Twitterにログインし、以下のページでアプリケーション登録申請を行います。
https://dev.twitter.com/apps/new

項目 入力内容
Name 任意の文字列
Description 任意の文字列
Website 自分のTwitterURL
CallbackURL ※省略

同意して「Create your Twitter Application」を押下。
今回はSettingタブにある「Application Type」を「Read and Write」にしました。

Consumer keyConsumer secret をメモしておきます。


TwitterのOAuth登録

次のコマンドを実行し、コマンドライン上でTwitterアプリ登録時に取得したConsumer Keyなどを入力。
途中、Couldn't get a file descriptor referring to the console というエラーのようなものが出たので、 指示に従ってブラウザから
http://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXX
へ遷移。すると、アプリの利用許可を求める画面が表示されるので、許可すると、PINコードが表示されます。

$ get-twitter-oauth-token
Consumer Key: (XXXXXXXXXXXXXXXXXXXXXXXXXX)
Consumer Secret: (XXXXXXXXXXXXXXXXXXXXXXXXXX)
Couldn't get a file descriptor referring to the console
Access here: http://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXXX
and...
PIN: (1234567)
Token: (XXXXXXXXXXXXXXXXXXXXXXXXXX)
Secret: (XXXXXXXXXXXXXXXXXXXXXXXXXX)

TokenとSercretがコマンドラインに表示されるので、メモしておきます。


ツイートしてみる

tweet_sample.rb

require 'twitter'

Twitter.configure do |cnf|
    cnf.consumer_key = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
    cnf.consumer_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
    cnf.oauth_token = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
    cnf.oauth_token_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
end

Twitter.update("Tweet From Ubuntu Local !!")

スクリプトを実行し、Twitterタイムラインに投稿されていたらOK!

その他の使用法などはここ↓を参照。

The Twitter Ruby Gem