2015-10-16  ruby  twitter 

複数画像付きでツイートするRubyスクリプト

動機

以下のように画像付きのツイートをしたい。

方法

$ 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.jpg

解説

Enjoy!

参照

追記(2015-10-18)

呼び出すたびに違うフォルダの内容をツイートするように変更したもの。

 2015-10-16  ruby  twitter