LoginSignup
10
10

More than 5 years have passed since last update.

さくらVPS(ubuntu14.04)借りて、twitterbot作った。

Last updated at Posted at 2014-12-15

はじめに

こんにちわ。
4年間いわてに住んだことあります。つくば在住のやぎぬまです。
学生3人でルームシェアしてます。
今回は最近、サーバ借りたのでちょっと環境構築がてらrubyでbot作ってみた時のメモです。

サーバの環境構築

まず、サーバ借りたら各ユーザごとにpublic_htmlを作り、そのなかで作業できるようにしたかったのでしました。
apacheでは

  • /etc/apache2/mods-availableに各モジュールのロード用スクリプト本体
  • /etc/apache2/mods-enabledにロードスクリプトへのリンク

が置かれています。なので、userdirモジュールを有効にするために以下のようにリンクを貼ります。

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/userdir.conf userdir.conf
sudo ln -s ../mods-available/userdir.load userdir.load

これで、/home/各ユーザ/public_html配下で作業できるようになります。

sudo a2enmod userdir

このコマンドでもできるらしいです。確認はしていません。

一応今回は使わないですが、cgiの設定もします。
ubuntuなので、以下の要領でまたリンクを張ります。

sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

次に/etc/apache2/sites-available/000-default.confを編集します。

sudo vi /etc/apache2/sites-available/000-default.conf

/etc/apache2/sites-available/000-default.conf
Include conf-available/serve-cgi-bin.conf #コメントを外す

次に拡張子を設定します。

sudo vi /etc/apache2/mods-available/mime.conf

/etc/apache2/mods-available/mime.conf
AddHandler cgi-script .cgi .rb #.rb追加

次にcgiを動かすディレクトリの設定をします。

/etc/apache2/conf-available/serve-cgi-bin.conf
<IfDefine ENABLE_USR_LIB_CGI_BIN>
    #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    #<Directory "/usr/lib/cgi-bin">
    ScriptAlias /cgi-bin/ /home/*/
    <Directory "/home/*">    
        AllowOverride None
        Options +ExecCGI -MultiViews+SymLinksIfOwnerMatch #追加
        Require all granted
    </Directory>
</IfDefine>
/home/yaginuuu/public_html/index.rb
#!/usr/bin/ruby
# coding:utf-8

puts "Content-type:text/plain"
puts ""
puts "Hello World."

ブラウザから確認
スクリーンショット 2014-12-15 11.54.18.png

botをつくる

今回は環境構築メインなので、定期的につぶやく簡単なbotにしようと思います。
まず、bot用のアカウントつくります。
次にアプリマネジメントページで新しくアプリケーションを作ります。
これは調べればたくさんあるので割愛します。

Keys and AccessTokensタブの

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

控えます。

次にgemをインストールします。

gem install twitter

次にこんな感じのファイルを用意します。
各キーはyamlに書いときます。

config.yml
consumer_key: "YOUR_CONSUMER_KEY"
consumer_secret: "YOUR_CONSUMER_SECRET"
access_token: "YOUR_ACCESS_TOKEN"
access_token_secret: "YOUR_ACCESS_SECRET"
bot.rb
# coding:utf-8

require 'yaml'
require 'twitter'

keys = YAML.load_file(File.expand_path('../config.yml', __FILE__))

client = Twitter::REST::Client.new do |config|
  config.consumer_key        = keys["consumer_key"]
  config.consumer_secret     = keys["consumer_secret"]
  config.access_token        = keys["access_token"]
  config.access_token_secret = keys["access_token_secret"]
end

str = %w(おなかすいた 旅行いきたひ 貧乏生活 スノボしたい かに食べ行こう ルームシェア楽しい ruby大好き youtuberになろうかな)
client.update(str.sample)

次に定期的にツイートさせるためにcronを動かします。
いろいろやり方がありますが、今回は以下要領でやります。

crontab -e

*/30 * * * * /home/yaginuuu/.rbenv/shims/ruby(実行コマンド) /home/yaginuuu/public_html/bot.rb(実行ファイル)

cronの書き方に関しては参考文献を参考下さい。

こんなかんじで確認できました。

さいごに

サーバの環境構築からbotを動かすとこまでまとめてみました。

参考文献

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10