連絡用twitterボット

最近参加しているプロジェクトで

連絡用にtwitterを使いたい,という要望があったので作ってみた.
流れとしては

  • 非公開のアカウント
  • そのアカウント宛にDM
  • DMされたメッセージをtweet

こういう作りにすれば

  • アカウント非公開なので,チームの人しか見れない
  • DMなので他のfollowerに見られる心配もない

ただ,

「twitter4rを使ってDMを最新一件だけ取得」
ってのにちょっとハマったのでメモ.
messagesで全部とってきて,ループ一回だけ回して出る,というバッドノウハウが必要っぽい.*1

require 'rubygems'
require 'twitter'

begin
        client = Twitter::Client.new(:login => "name", :password => "passwd")
        $rcvdmsg = client.messages(:received)

        #最新のDMを一件取得
        $rcvdmsg.each do |msg|
              $name = msg.sender.screen_name
              $msgtext = msg.text
              break
        end

        #投稿
        $message = $msgtext + " [from @" + $name + "]"
        client.status(:post, $message)
        rescue
end

とりあえず,

そんなに活発でもないのでこれを毎分cronしてごまかす.
そろそろ常駐型botの作り方勉強しないとなー.

twicco使えよってツッコミはなしの方向で..

*1:他の方法でできるよってのがあれば教えてください...