DesignAssembler

備忘録に近い

twitterに投げられたソースコードを取得して実行結果をtwitterに返す

こんにちは。

現在Twitter API勉強中です。

少し前に@paiza_runを見て面白いなと思ったので、真似て作ってみます。

paiza.hatenablog.com


機能を限って、あるハッシュタグのつぶやきを見つけてそこに書いてあるコード(Rubyに限定)を実行して自分のTwitterに投げ返すようなものにします。

ちなみに名前はTwipileです。

require 'twitter'

#各キーの設定
client = Twitter::REST::Client.new do |config|
  config.consumer_key       = "コンシューマーキー"
  config.consumer_secret    = "コンシューマーシークレット"
  config.access_token       = "アクセストークン"
  config.access_token_secret= "アクセストークンシークレット" 
end

limit=1 #取得するツイートの数
word="raspibottest" #ハッシュタグ
s=nil #初期値としてnilを代入
f=0 #フラグ
client.search("#{word} -rt", :result_type => "recent").take(limit).map do |tweet| # #raspibottestを検索してtweetに保存
  s = tweet.text.sub("#raspibottest","") #文末のハッシュタグを削除する
  if(s.include?("finish")) # ツイートにfinishという単語が含まれているかどうか?
    f=1
    s.sub!("finish","")
  end
  open("test.rb","a"){|f| f.write s} #含まれていないならファイルに文を追加していく
end
  if(f==1) # finishがあるならコマンドを実行して@asmsuechan宛てに結果を投げる
    IO.popen('ruby test.rb').each do |line|
      client.update("@asmsuechan "+line)
      system("rm test.rb")  #次のためにファイルを削除
    end
end


140文字制限下でのコードも楽しいですが、ここではそれ以上入力する事ができるようにfinishという単語が見つかるまでファイルに追加していきます。

twitterからGPIO制御も楽にできそうです。

twitter gemは本当に便利ですね。


これをRaspberry Piで1分おきに動かすとか面白そうですね。hyottokoaloha.hatenablog.com

Raspberry Pi 2 ラズベリー・パイ 超小型パソコン Pi 2 MODEL B

Raspberry Pi 2 ラズベリー・パイ 超小型パソコン Pi 2 MODEL B