$ sudo apt-get install git build-essential libreadline-dev libssl-dev
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(rbenv init -)"' >> ~/.profile
$ exec $SHELL -l
$ rbenv install 2.0.0-p195
$ rbenv rehash
$ rbenv global 2.0.0-p195
これでできる?
http://qiita.com/s-yamaz@github/items/b38b330b44f517f3c77c
$ gem install bundler
- http://twitter.com/apps/new からアプリケーションを登録
consumer key
とconsumer secret
をメモっておく - http://atoken4me.heroku.com/ からOAuthトークンを取得
oauth token
とoauth token secret
をメモっておく - 登録したアプリケーションの
Settings
からApplication Type
のAccess
をRead and Write
などに設定しておく
- https://www.heroku.com/ から
Sign Up
- SSH公開鍵を登録する
Account
ページのSSH Keys
から
鍵を作っていない場合は、$ ssh-keygen -t rsa
などする - Add-onsを使うためにクレジットカード情報を登録する
無料のAdd-onsだけを使うのにも、登録が必要
Account
ページのBilling
から
$ git init
$ echo "vendor" >> .gitignore
$ git add .
$ git commit -m "Initial commit"
Gemfile
を作成
source "https://rubygems.org"
gem 'foreman'
gem 'twitter'
インストール
$ bundle install --path=vendor/bundle
bot.rb
を作成
# coding: utf-8
require 'twitter'
Twitter.configure do |config|
config.consumer_key = 'アプリの consumer key'
config.consumer_secret = 'アプリの consumer secret'
config.oauth_token = 'ユーザーの oauth token'
config.oauth_token_secret = 'ユーザーの oauth token secret'
end
# このへんは自由に
Twitter.update(Time.now.strftime("もう%H時%M分か・・・"))
実行
$ bundle exec ruby bot.rb
.env
を作成
イコールの周囲にスペースを入れてはいけない。下の例の波括弧も入力しない。
TWITTER_CONSUMER_KEY={アプリの consumer key}
TWITTER_CONSUMER_SECRET={アプリの consumer secret}
TWITTER_OAUTH_TOKEN={ユーザーの oauth token}
TWITTER_OAUTH_TOKEN_SECRET={ユーザーの oauth token secret}
TZ=Asia/Tokyo
.env
をgitで無視
$ echo ".env" >> .gitignore
bot.rb
を編集
Twitter.configure do |config|
config.consumer_key = ENV['TWITTER_CONSUMER_KEY']
config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
config.oauth_token = ENV['TWITTER_OAUTH_TOKEN']
config.oauth_token_secret = ENV['TWITTER_OAUTH_TOKEN_SECRET']
end
実行
$ bundle exec foreman run ruby bot.rb
Procfile
を作成
bot: ruby bot.rb
実行
$ bundle exec foreman start bot
コミット
$ git add .
$ git commit -m "Create bot.rb"
このへんを参照
http://itiut.hatenablog.com/entry/2013/05/31/024209
heroku toolbeltのインストール(ubuntu)と初期設定
$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
$ heroku login
appの作成
$ heroku create
プロセス数を0に
$ heroku ps:scale web=0
heroku-configを使って、.env
に書いた環境変数をherokuに追加
$ heroku plugins:install git://github.com/ddollar/heroku-config.git
$ heroku config:push
デプロイ
$ git push heroku master
schedulerアドオンを追加して、設定画面を開く
$ heroku addons:add scheduler:standard
$ heroku addons:open scheduler
Add Job...
から実行したいコマンドを追加
$ bundle exec foreman start bot
Gemfile
を編集して、$ bundle install
source "https://rubygems.org"
gem 'foreman'
gem 'twitter'
gem 'clockwork'
bot.rb
を編集
# coding: utf-8
require 'twitter'
require 'clockwork'
include Clockwork
Twitter.configure do |config|
config.consumer_key = ENV['TWITTER_CONSUMER_KEY']
config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
config.oauth_token = ENV['TWITTER_OAUTH_TOKEN']
config.oauth_token_secret = ENV['TWITTER_OAUTH_TOKEN_SECRET']
end
handler do |job|
Twitter.update(Time.now.strftime("もう%H時か・・・"))
end
every(1.hour, 'tweet.job')
Procfile
を編集
bot: bundle exec clockwork bot.rb
実行
$ bundle exec foreman start bot
デプロイした後、botのプロセス数を1に
$ heroku ps:scale bot=1