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


## はじめに
こんにちわ。
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](https://qiita-image-store.s3.amazonaws.com/0/30891/07b702cb-43be-464f-e4b0-1d4686863781.png "スクリーンショット 2014-12-15 11.54.18.png")


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

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

```crontab
*/30 * * * * /home/yaginuuu/.rbenv/shims/ruby(実行コマンド) /home/yaginuuu/public_html/bot.rb(実行ファイル)
```
cronの書き方に関しては<a href="http://www.omnioo.com/record/ubuntudebian/crontab/">参考文献</a>を参考下さい。

<a href="https://twitter.com/qitter_bot/status/544220289312116736">こんなかんじ</a>で確認できました。


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

## 参考文献
- <a href="http://yosugi.hatenablog.jp/entry/2013/06/25/082759">ubuntuのApacheでUserdirを使えるようにする</a>
- <a href="http://www.omnioo.com/record/ubuntudebian/crontab/">crontabの使い方</a>