動かざることバグの如し

近づきたいよ 君の理想に

rubyでTwitterに画像付きツイートを投稿する

一番有名なtwitter gemを利用してRubyTwitterに画像つきのツイートを投稿するメモ

色んな人がすでに書いているが、どうもやり方が変わってるらしくてできなかった

まずはGemfileにgem "twitter"に追加して以下

require 'twitter'

tw = Twitter::REST::Client.new do |config|
  config.consumer_key        = ""
  config.consumer_secret     = ""
  config.access_token        = ""
  config.access_token_secret = ""
end

images = []
images << File.new('gazo.jpg')

res = tw.update_with_media("test #{Time.now}", images)
puts res

各4つキーにはTwitterで設定したキーを設定する。

update_with_mediaでいいの?

よくあるブログではupload(media)してからupdate('hello', media_id)するのがあるが、それをやろうとすると

index.rb:15:in `<main>': private method `upload' called for #<Twitter::REST::Client:0x007f972af350e8> (NoMethodError)

となる。ソースコードを読めばわかるが、 uploadメソッドはprivateメソッド化され、update_with_media()の内部で呼ばれるようになった。つまり外からはupdate_with_media()だけ叩けばよい