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

ファイル名「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ボタンをクリックします。

これで準備完了。

$ chmod 許可 対象ファイル

許可の部分には誰、操作、何を指定します。

「誰」の部分には
u(user:所有者)
g(group:グループ)
o(others:その他)
a(all:全員)
を組み合わせて指定。

「操作」の部分には
+(許可を加える)
-(許可を取り除く)
=(設定をリセットしてから、許可を設定する)
のいずれかを指定。
「何」の部分では
r(read:読取り)
w(write:書込み)
x(execute:実行)
を組み合わせて指定。


$ chmod ug-w,a+r test.txt
所有者とグループから書込み許可を除いて、全員に読取り許可を与える。

$ chmod a=x test.txt
許可情報をすべてリセットしてから全員に実行許可を与える。
数字を用いた許可情報の設定

400 所有者の読取り
200 所有者の書込み
100 所有者の実行
40 グループの読取り
20 グループの書込み
10 グループの実行
4 その他の読取り
2 その他の書込み
1 その他の実行


所有者にだけw,r,xの許可を与える
$ chmod 700 test.txt

400 所有者の読取り
200 所有者の書込み
+ 100 所有者の実行
700

全員にrの許可だけを与える
$ chmod 444 test.txt

400 所有者の読取り
40 グループの読取り
+ 4 その他の読取り
444

$ chmod 000 test.txt (許可なし)
$ chmod 111 test.txt (実行許可)
$ chmod 222 test.txt (書込許可)
$ chmod 333 test.txt (書込と実行許可)
$ chmod 444 test.txt (読取り許可)
$ chmod 555 test.txt (読取りと実行許可)
$ chmod 666 test.txt (読取りと書込許可)
$ chmod 777 test.txt (読取りと書込と実行許可)

Ubuntu 12.04でisoイメージを簡単にマウントするためにMountyをインストールしてみた。
$ sudo add-apt-repository “deb http://download.learnfree.eu/repository/skss / #SKSS”
$ wget http://download.learnfree.eu/repository/skss/repo.pub.asc -q -O- | sudo apt-key add –
$ sudo apt-get update && sudo apt-get install mounty

簡単!画面右上のアイコンクリックしてOpen Disk Imageをクリック、isoイメージを選択したらhomeディレクトリにマウントされました。

参考

https://launchpad.net/mounty

端末がおかしくなった場合

「CTRL」+「s」(画面スクロールを止めるキー)を押してしまっている場合は、
「CTRL」+「q」で解除。

プロンプトが出ない場合
「cat」などの標準入力からの入力を読み取るコマンドを実行中の場合は
「CTRL」+「d」
で解決。

コマンドが暴走、終わらない場合は
「CTRL」+「c」
で解決。

「CTRL」+「c」を受け付けない場合。
「CTRL」+「z」でコマンドを一時停止して、
「kill %%」で強制終了。

「CTRL」+「z」で止めたコマンドの再開は「fg」
「CTRL」+「d」=標準入力からの入力を終了
「CTRL」+「z」=コマンドの実行を一時停止
「CTRL」+「c」=実行中のコマンドを強制終了

2018年12月
« 4月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

カテゴリー

広告

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

広告

広告

最近のコメント

    広告

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

    広告