mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Ruby - Twitter Gem 不具合!

[ プログラミング ] [ Ruby, Twitter ]

こんばんは。

Ruby で Twitter API を使用するのに “Twitter” という RubyGems ライブラリを使用していましたが、アップデートしたら使用できなくなりました。

ライブラリの README にも記載がありますが、以下にその原因と対策について記録しておきます。

0. 前提条件

  • Ruby 2.0.0-p353 での作業を想定。
  • RubyGems ライブラリ Twitter のバージョン 4.6.2 では正常に動作する。
  • RubyGems ライブラリ Twitter のバージョン 5.0.0 以上(?)ではエラーが発生する。

1. 現象

Ruby で Twitter Gem(5.0.0) を require してツイートしようとする以下のようなエラーが出力される。

1
undefined method `configure' for Twitter:Module

2. 原因

新しいバージョンの Gem では、configure の使用方法が異なるためのようだ。

3. 対策

今まで、configure してインスタンス化する部分は以下のようにしていたが、

1
2
3
4
5
6
7
8
Twitter.configure do |config|
  config.consumer_key       = CONSUMER_KEY
  config.consumer_secret    = CONSUMER_SECRET
  config.oauth_token        = ACCESS_TOKEN_KEY
  config.oauth_token_secret = ACCESS_SECRET
end

client = Twitter::Client.new

新しいバージョンでは、以下のようにするらしい

1
2
3
4
5
6
client = Twitter::REST::Client.new do |config|
  config.consumer_key       = CONSUMER_KEY
  config.consumer_secret    = CONSUMER_SECRET
  config.oauth_token        = ACCESS_TOKEN_KEY
  config.oauth_token_secret = ACCESS_SECRET
end

ライブラリの README に記載されていました。

同じ RubyGems ライブラリでも、メジャーバージョンアップ時には仕様が変わることがあるので要注意ですね。

以上。

Comments