» 2013 » 6月のブログ記事

#!/usr/bin/env ruby -Ku

require ‘rubygems’ # ←Ruby 1.9では不要
require ‘twitter’
require ‘pp’

# ログイン

Twitter.configure do |config|
config.consumer_key = ‘******************’
config.consumer_secret = ‘***************************’
config.oauth_token = ‘*********************************’
config.oauth_token_secret = ‘*************************’
end
t =Twitter.get(‘/1.1/application/rate_limit_status.json’)

pp t[:body][:resources][:statuses][:”/statuses/home_timeline”][:remaining]
pp t[:body][:resources][:statuses][:”/statuses/home_timeline”][:reset]
pp t[:body][:resources][:statuses][:”/statuses/home_timeline”][:limit]

pp Time.at(t[:body][:resources][:statuses][:”/statuses/home_timeline”][:reset])

#end

TwitterAPI1.1になって15分で15回しか実行できないAPIがるので、試行錯誤しながらBotを作っていると直ぐに上限回数に達して

しまいます。残りの実行可能回数を確認するためのコードです。

「t =Twitter.get(‘/1.1/application/rate_limit_status.json’)」の部分で各APIの制限回数、残り回数、リセット時刻が取得できます。

これもハッシュの型で取得できるので、知りたい値のキーを指定すれば簡単に取得できます。

リセット時刻の値は数字で取得されるので、「Time.at()」を使って時刻の形式に変換しています。

[:body][:resources][:statuses]にはhome_timelineの制限回数の他にmentions_timelineやuser_timelineなどがあります。

[:”/statuses/mentions_timeline”]
[:”/statuses/user_timeline”]

twitSandbox1.1を使うと各APIで取得できるデータが簡単に見ることが可能です。

「’/1.1/application/rate_limit_status.json’」などのエンドポイント(URL)も載っているので参考になります。

ボット作りの最初はまずタイムラインの取得から始めてみます。

ファイル名「homeTimeLine.rb」などの名前でファイルを作成。

以下ファイルの中身。

#!/usr/bin/env ruby -Ku

require ‘rubygems’ # ←Ruby 1.9では不要
require ‘twitter’
require ‘pp’

# ログイン
Twitter.configure do |config|
config.consumer_key = ‘*********************’
config.consumer_secret = ‘*******************’
config.oauth_token = ‘*******************’
config.oauth_token_secret = ‘****************’
end
#タイムラインの取得

#自分のタイムラインを取得
timeline =Twitter.home_timeline

pp timeline

#end

ログインの部分の「******」は取得したキーに置き換えます。

Twitter.home_timelineで取得出来るツイート数は20個です。

timelineに配列の型で格納されます。(pp timelineをpp timeline.classとするとtimelineの型が表示されます)

pp timelineで20個のツイートと付随する大量の情報が表示されます。

timelineは配列なのでtimeline[0]で一番新しいツイートのみを表示できます。(0〜19)

pp timeline[0]

timeline[0]で取得できるデータはキーと値からなるハッシュでできています。

このデータの中から必要になりそうな物を表示してみます。

h = timeline[0]

pp h[:created_at]#投稿日時
pp h[:id]#ツイート文のID
pp h[:text]#ツイート文
pp h[:source]#ツイッター投稿時のクライアント名(アプリ名)
pp h[:user][:id]#ユーザーID
pp h[:user][:name]#変更可能な名前
pp h[:user][:screen_name]#@の後に書かれている名前(ツイッターID)
pp h[:user][:location]#プロフィール欄の地名
pp h[:user][:description]#プロフィール欄の説明文
pp h[:user][:followers_count]#フォロワーの数
pp h[:user][:friends_count]#フォローしてる数
pp h[:user][:statuses_count]#ツイート数
pp h[:retweet_count]#リツイート数

まずh = timeline[0]で変数hにデータを格納。

h[:キー]の形で指定するとそのキーに対応する値が取得できます。

またh[:user][:name]のようにキーの中にキーが設定されている物もあります。(ネスト(入れ子))

最後に

pp h.class
pp h[:user].class

を実行すると

Twitter::Tweet
Twitter::User

と表示されます。これはTwitter Ruby Gemのクラスです。「Tweet」「User」クラスで使用できるメソッドを使うと先ほどのハッシュで指定したデータの一部がメソッドを使って取得できます。

http://rdoc.info/gems/twitter/frames(Twitter Ruby Gemのドキュメント)

pp h.user
pp h.user.name

 

※参考ブログ

プログラミング未経験者でもできる、 Ruby を使った Twitter の bot の作り方(第二章)

Ubuntu 12.04.2 LTSとruby 1.8.7とRubyGems1.7.2で作っていきます。

Ruby1.8.7をインストールする。

Dashホームから「端末」を起動し、「sudo apt-get install -y ruby ruby1.8-dev」を実行しインストールを行います。

「ruby -v」を実行しバージョンを表示してみます。

RubyGemsをインストール。

sudo apt-get install -y rubygems

バージョンを確認

gem -v

1.7.2以外のバージョンでも問題ないかもしれません。

rubygemsのアップデート方法

sudo gem install rubygems-update

sudo /var/lib/gems/1.8/bin/update_rubygems

バージョンを確認

gem -v

rubygemsのダウングレード方法

gem list rubygems-update

上記コマンドで表示されたバージョンを下記コマンドのバージョン部分と置き換えて実行。

sudo gem uninstall -v 1.7.2 rubygems-update

sudo gem install -v 1.3.7 rubygems-update

sudo update_rubygems

gem -v

RubyGemsの使い方は下記ページを参考。

Ruby/Rubygems使い方まとめ

RubyでTwitterAPIを使うために「twitter」をインストール。

sudo gem install twitter

ツイッターアカウントの登録とツイッターサービスの登録。

アカウントはツイッター公式で取得。

サービスの登録はhttp://dev.twitter.com/apps/newで登録します。

取得したツイッターアカウントでDevelopersサイトにログインしたら
画面右上の自分のツイッターアイコンをクリックしてMy applicationsをクリック。
My applications画面右のCreate a new applicationsボタンをクリック。
Application DetailsのName、Description、Websiteに記入。
例
Name:初めてのボット
Description:テスト用のツイッターボット
Website:http://hogehoge.com

※Websiteの部分は連絡先のURL、無ければ自分のツイッターアドレス等。

Developer Rules Of The RoadのYes、I agreeをチェックして

CAPTCHAに表示される2個の単語を入力、Create your Twitter applicationボタンをクリック。

Your access tokenの下にあるCreate my access tokenボタンをクリック。
OAuth toolタブをクリックしてConsumer Key、Consumer secret、Access token、Access token secretの値を
メモしておきます。

Settingsタブをクリック。Application TypeでRead and WriteかRead、Write and Access direct messagesを
チェックしてUpdate this Twitter applications settingsボタンをクリックします。

これで準備完了。
2013年6月
« 5月   7月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

カテゴリー

広告

広告

広告

現在の住まい、将来はVPSへ引越します。 ロリポップの上位版です。

広告

11月29日まで初期費用半額キャンペーン中。マルチドメイン可能なので複数サイトを持ちたい方にはお勧め。

広告

お疲れの方は、
こちらで一休み。

広告

復刊実現の投票をお願いします。

広告

最近のコメント

    広告

    Railsを動かす予定のVPS。無料キャンペーン中。

    広告