Herokuで前回までに作成したTwitter Botを動かすこととした。ツイートへの自動リプライなんかをする時にずっと自分のPCを稼働させている訳にもいかないし。
Herokuに登録して、CLIのダウンロードやSinatraのダウンロードを済ませて準備を整えた後(Gitも必要だけどこれは既に環境が整っていた)、実行。
まずはHerokuのレポジトリにgit コミットする。
1 |
git add -A |
1 |
git commit -m "initial commit" |
その後、既にコミットしたファイルに修正が入った場合は改めてコミット。
1 |
$git commit -am "any comments" |
でHerokuにプッシュする。
1 |
git push heroku master |
幾つかコードを書いたけど例えばこれを実行するとする。
tweets.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
require 'rubygems' require 'twitter' require 'sinatra' client = Twitter::REST::Client.new do |config| config.consumer_key = "KEY" config.consumer_secret = "KEY" config.access_token = "KEY" config.access_token_secret = "KEY" end @text = [ "Utz", "Maltyox", "Nim laj maltyox", "In al Kotz'i'j", "In aj Q'antel", "Sib'alaj je'lik le nutinamit", "K'o le nitz wab'ix", "Pa le wachoch, e k'o nutat nunan nume's", "Jas kub'ij ri ak'u'x?", "Ub'i' Na' le wachi'l.", "In k'o sib'alaj wachi'l.", "Al Na' k'o pa qatijob'al chanim." ] ENV["TZ"]="America/Guatemala" t = Time.now strTime = t.strftime("[Chanim pa Ixim Ulew %H: %M: %S]") tweet = @text[rand(@text.length)] client.update(tweet + " " + strTime) #tweet |
こうやって
1 |
heroku run "ruby tweets.rb" |
選択肢の中からランダムに選んだツイートにグアテマラの現在時刻を追加することとした。というのも同じ文章を連続で投稿してしまうと反映されないことがあるから。
これで実行できた。
実行結果はこんな感じ。
インドネシア語と認識されたのはちょっと気になるけどそれだけキチェ語は世界的にはマイナーということなんだろうと思う。Chanimとは今、英語のnowの意味でIxim Ulew(トウモロコシの土地はグアテマラの意味)。つまり、現在のグアテマラの時間はということをツイートしている。
これをHeroku上で定期的に実行する設定にした。