Okada Hiroshi の blog

typo が多いです

[twitter] Twitter4R

長いこと、放置してあった twitter をアクセスしてみました。面白さは見えてこないんですが、日々の記録用に使ってみることにしました。

色々、自分用のツールを作ろうと思い Twitter4R をインストールして、投稿とタイムライン?の表示ができたので、メモしておきます。

** インストール 普通に Rubygems を使ってインストールしました。

||

gem install --remote twitter4r

Bulk updating Gem source index for: http://gems.rubyforge.org Building native extensions. This could take a while... Successfully installed json-1.1.2 Successfully installed twitter4r-0.3.0 2 gems installed Installing ri documentation for json-1.1.2...

No definition for cState_configure

No definition for cState_configure Installing ri documentation for twitter4r-0.3.0... Installing RDoc documentation for json-1.1.2...

No definition for cState_configure

No definition for cState_configure Installing RDoc documentation for twitter4r-0.3.0... # ||< *1 *2

** 投稿とタイムライン表示のテスト

とりあえず、投稿とタイムラインを表示するスクリプトを組んで見ました。

|ruby|

!/usr/local/bin/ruby

# require 'rubygems' gem 'twitter4r', '>=0.3.0' require 'twitter' require 'twitter/console' require 'time' require 'kconv' require 'yaml' $KCODE='utf-8'

スクリプトutf-8 で書いています。

とりあえず WindowsLinux/FreeBSD しか使っていないので、手抜きで出力コードを設定しています。

$env_code = Kconv::UTF8 if RUBY_PLATFORM =~ /mswin/i then $env_code = Kconv::SJIS elsif ENV['LANG'] =~ /euc/i $env_code = Kconv:: Kconv::EUC end

設定ファイルから ID とパスワードを読み込みます。

twitter = Twitter::Client.from_config( 'conf.yaml','test')

一行読み込んで、twitter に書き込みます。

msg = gets.chomp twitter.status(:post, Kconv.kconv( msg, Kconv::UTF8))

タイムラインを取得して表示します。

timeline = twitter.timeline_for(:me) do |status| puts Kconv.kconv( "#{status.created_at.to_s} #{status.user.screen_name} #{status.text} #{status.user.location}\n", $env_code) end ||<

ログインID とパスワードは ymal 形式のファイルに書いておきます。このソースの例だと conf.yaml という名前のファイルです。

|| test: login: ここにログインIDを書く password: ここにパスワードを書く ||< *3

*1:No definition for cState_configure と警告がでますが、ドキュメントのインストール時なので、無視します。

*2:Windows にインストールしたときには、json のインストール時にSelect which gem to install for your platform (i386-mswin32)と聞かれました、Windows マシンの開発環境の設定をしていないので、json 1.1.1 (mswin32)を選択しました。

*3:なお、このファイルの一行目の test と Twitter::Client.from_config の第二パラメータの test は対応しています。