こちらのページで紹介されているSeleniumを用いて、OAuthを用いずにTwitterに自動投稿するRubyスクリプトを記述してみます。連続で複数回実行すると、ボット判定としてキャプチャ認証が発生します。その認証までは通過できませんので悪しからず。また、Twitterの仕様変更次第ではDOMの構造が変化するため、下記サンプルは機能しなくなる恐れが有ります。
twitter_post.rb
#!/usr/bin/ruby
require "selenium-webdriver"
driver = Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 10 # seconds
# トップページを表示
driver.get "https://twitter.com/"
# ログイン処理
input_email = driver.find_element :id => "signin-email"
input_email.clear
input_email.send_keys "warren757"
input_password = driver.find_element :id => "signin-password"
input_password.clear
input_password.send_keys "warren757's password"
input_password.submit
# つぶやき内容をフォームに入力
driver.find_element(:id => "tweet-box-mini-home-profile").send_keys "Posted from a ruby script using Selenium."
# サブミット
driver.find_elements(:class, "tweet-action").each do |tweet_btn|
tweet_btn.click if tweet_btn.attribute("class").split(' ').select{|cname| cname=='disabled'}.size == 0
end
# スクリーンショット生成
sleep 5
driver.save_screenshot "/tmp/twitter_post.png"