fc2ブログ

[Ruby]Rubyを使ってみる~その2~

昨日RubyとTwitter APIを使いTwitterのタイムラインを取得しようしてエラーを出して諦めて寝ました。しかし、今日になって有り難いコメントや知恵袋で質問したおかげで解決しました。コメントをしてくれた方本当に有難うございます(・∀・)

昨日の状態;
# -*- coding: Windows-31J -*-
require 'rubygems'
require 'twitter'
require 'oauth'

# Consumer key, secretの設定
consumer_key = xxxxxxxxxx # 実際にはちゃんと値を入れています
consumer_secret = xxxxxxxxxxxx

# Access Token Key, Secretの設定
access_token_key=xxxxxxxxxxxxxx
access_secret=xxxxxxxxxxxxxxx

oauth = Twitter::OAuth.new(consumer_key, consumer_secret)
oauth.authorize_from_access(access_token_key, access_secret)

client = Twitter::Base.new(oauth)

# homeのタイムラインを取得
client.home_timeline.each do |status|
puts "-------------------------------
puts "user:#{status['user']['name']} time:#{status['created_at']}"
puts "#{status['text']}"
end

としたところsyntax error unexpected tCONSTANT ,expected $endと出ていたのですが、これはコメントを頂いた通りに正しく引用符が閉じられていませんでした(-_-;)
しかし、ninitialized constant Twitter::OAuth(NameError)と出たのでまた調べてみて結果的に次のコードに変更することで解決


# -*- coding: Windows-31J -*-
require 'rubygems'
require 'twitter'

# Consumer key, secretの設定
YOUR_CONSUMER_KEY = "xxx" # アプリの登録で出てきたやつ
YOUR_CONSUMER_SECRET = "xxx"

# Access Token Key, Secretの設定
YOUR_OAUTH_TOKEN="xxx"
YOUR_OAUTH_TOKEN_SECRET="xxxx"

Twitter.configure do |config|
config.consumer_key = YOUR_CONSUMER_KEY
config.consumer_secret = YOUR_CONSUMER_SECRET
config.oauth_token = YOUR_OAUTH_TOKEN
config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end

client = Twitter::Client.new

client.home_timeline.each do |status|
puts "--------------------------------"
puts "user:#{status['user']['name']} time:#{status['created_at']}"
puts "#{status['text']}"


これで自分のタイムラインが無事に取得出来た^^
ただ、文字コードの関係で文字化けしたけど・・・それは直し方を調べてやればいいや
http://d.hatena.ne.jp/yoshidaa/20110112/1294846937
http://twitter.rubyforge.org


[疑問]
1.oauthをrequireしてない・・
2.前のやり方でも出来た人がいる
ということでもしかしたらTwitter APIの仕様変更とかライブラリ変更が根本原因なのかなーって思う。

スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

No title

どうやらTwitter::OAuthクラスはtwitterのバージョン1.0で削除されたようです
それに伴って, require 'oauth'する必要もなくなっています
http://rdoc.info/gems/twitter/1.1.2/file/README.mkd#What_s_new_in_1_0_

ありがとうこざいます!

もしかしたら知恵袋で答えてくださった方でしょうか?わざわざ、有難うございますm(__)m
なるほど、OAuthクラスは廃止されたのですね!Versionが変わることに様々な変更があることは当然なんでしょうが、つい1年前の情報が使えなくなるというのは、やっかいだなと思います。
実は、Oauthクラスを試す前に2010年8月に廃止されたベーシック認証の方法で試したときもHTTPAuthクラスが廃止されていて同じエラーが出ていたので、もしやと思っていたのですがその通りだったのですね。

パソコンのランキングです

プロフィール

kent

Author:kent
理系大学生が自分の学習・思ったことを綴る日記

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
Twitter on FC2
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR