ruby gemの新しいtwitterをインストールしたら、またまた認証方法が変わってた!(twitter-5.7.1)
<スポンサードリンク>
新しくAmazonLinuxでインスタンス作って、twitterのbotをつくろうと思ってインストール。
yum update -y yum install -y ruby ruby-devel ruby-lib rubygems yum groupinstall -y "development tools" gem install twitter gem install system_timer
それぞれのバージョンなどは下記ののような感じ。
[root@myhost ~]# ruby -v ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux] [root@myhost ~]# gem -v 1.8.25 [root@myhost ~]# gem list *** LOCAL GEMS *** addressable (2.3.5) atomic (1.1.15) buftok (0.2.0) equalizer (0.0.9) faraday (0.9.0) http (0.5.0) http_parser.rb (0.6.0) json (1.8.1) memoizable (0.4.1) multi_json (1.9.0) multipart-post (2.0.0, 1.2.0) naught (1.0.0) oauth (0.4.7) simple_oauth (0.2.0) system_timer (1.2.4) thread_safe (0.2.0) twitter (5.7.1) [root@myhost ~]#
早速いままで通り認証用のconfig.yamlとテストツイートスクリプトtesttweet.rbを作成。
[config.yaml]
con_key : your_consumer_key con_sec : your_consumer_key_secret access_key : your_access_key access_sec : your_access_key_secret
[testtweet.rb]
#!/usr/bin/ruby require 'rubygems' require 'twitter' require 'yaml' key = YAML.load_file( "config.yaml" ) client = Twitter.configur::Client.new do |config| config.consumer_key = key["con_key"] config.consumer_secret = key["con_sec"] config.access_token = key["acc_key"] config.access_token_secret = key["acc_sec"] end client.update("test tweet!!")
実行してみる。
[root@myhost ~]# ruby testtweet.rb testtweet.rb:9: undefined method `config' for Twitter:Module (NoMethodError) [root@myhost ~]#
ガ━━(;゚Д゚)━━ン!!
いままで普通に動いていたのになぜか動かない。。。。。。
gemのtwitterのバージョンが5系にあがっていたので、あやしいと思ってドキュメントみてみたら、、、、
なんと!!!!またまた認証方法が変わってる・・・・・。
<変更前> client = Twitter.configur::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end ↓ <変更後> client = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end
ということで、変更してみて実行
[testtweet.rb]
#!/usr/bin/ruby require 'rubygems' require 'twitter' require 'yaml' key = YAML.load_file( "config.yaml" ) client = Twitter::REST::Client.new do |config| config.consumer_key = key["con_key"] config.consumer_secret = key["con_sec"] config.access_token = key["acc_key"] config.access_token_secret = key["acc_sec"] end client.update("test tweet!!") puts "Finish!"
実行!!!
[root@myhost ~]# ruby testtweet.rb Finish! [root@myhost ~]#
良かった、無事成功。。。。。ツイートを確認しても問題なくツイートできていることを確認。
バージョンアップはやっぱりこわいですな(´・ω・`)