以下のように画像付きのツイートをしたい。
$ gem install twitter
$ ls media/note6
0.txt 1.jpg
$ ruby media-tweet.rb
media-tweet.rb#!/usr/bin/env ruby
require 'twitter'
CLIENT = Twitter::REST::Client.new do |config|
config.consumer_key = "XXXXXXXXXXXXXXXXXXXXXXXXX"
config.consumer_secret = "ssssssssssssssssssssssssssssssssssssssssssssssssss"
config.access_token = "0000000-tttttttttttttttttttttttttttttttttttttttttt"
config.access_token_secret = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
end
# dir/0.txt (mandatory)
# dir/1.png (or jpg, ...)
# dir/2.png
# dir/3.png
# dir/4.png
def media_tweet(dir)
files = Dir.glob("#{dir}/[01234].*").sort
tweet_filename = files.shift
tweet = File.read(tweet_filename)
media_ids = []
files.each do |media_filename|
media_ids << CLIENT.upload(File.new(media_filename))
end
CLIENT.update tweet, { media_ids: media_ids.join(',') }
end
media_tweet('media/note6')
# vim: set filetype=ruby:media/note6/0.txt新刊のお知らせです。2015年11月に『数学ガールの秘密ノート/ベクトルの真実』が刊行されます。お楽しみに!現在Amazonで予約受付中です。(^^)[自動投稿]
https://bit.ly/girlvector
media/note6/1.jpgmedia-tweet.rb 中の consumer_key,
consumer_secret, access_token,
access_token_secret はもちろん自分のものを設定します。media_tweetメソッドに与えるディレクトリには、0.txt
というツイート内容を表すテキストファイルと、1.jpgや2.pngのように同時にツイートする画像ファイルを用意しておきます。画像ファイルは4個まで。ruby media-tweet.rb でツイートできます。Enjoy!
呼び出すたびに違うフォルダの内容をツイートするように変更したもの。