RubyでTwitterBotをつくってサーバーにアップしたい
ながらくおひさしぶりです。
何をしてたかというと、
誰でもできるTwitter Botの作り方―人気キャラにつぶやかせる
- 作者: 鏑家経済研究所
- 出版社/メーカー: イーグルパブリシング
- 発売日: 2010/07/23
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 569回
- この商品を含むブログ (15件) を見る
どうバカかというと、この本で扱われてる言語がRubyというところが(自分の能力許容量的に)大バカです。
……なんでこの期に及んでまた言語を増やそうとするのか!
『誰でもできるTwitterBotの作り方』について
というところでこの本に付いてざっくりとご説明です。
この本は、
botを作ることを目的としています。
つまり、botを動かしてる間はずっと自分のPCを起動しっぱなし、ネットにつなぎっぱなしにしておかねばなりません。
あ、自分が起きてる間だけ起動させるbotです、という方向性もないわけじゃないです。管理人とbotのラブラブ同棲生活(byヒジリ@スカーレッドライダーゼクス)の演出ですね!
……世迷言はおいといて。
そういうわけで、この本を参考に出来上がるのはあくまで自分のPCをTwitterBotサーバとして使用するBotです。
ここが大事。
つくったRubyスクリプトをサーバで使用するために その1
私が普段いろいろアップして使ってるのはさくらインターネットのレンタルサーバのスタンダードプランです。
スタンダードではサーバにRubyがインストールされていますので、一見本を参考に作ったスクリプトが使えるような気がします。が、できせん。
なぜなら本のスクリプトは全て「twitter_oauth」というライブラリを使用しており、このライブラリがさくらインターネットのサーバにはインストールされていないからです(2010年7月現在)。
……逆に言えば、必要なライブラリもRubyスクリプトと一緒にアップすれば使えるはず。
というわけでこういうことをしました。
- スクリプトに出てくる「require 'rubygems'」という1文は#付けてコメントアウト。
- コマンドプロンプトで「gem fetch twitter_oauth」と入力して「twitter_oauth.gem」というライブラリをダウンロード。(gemってのがよく分からないんですが、こう入力すると同名のライブラリをダウンロードしてくれるそうです)
- twitter_oauth.gemの拡張子を「.tar」に変更して解凍。→「twitter_oauth-0.4.2」フォルダができる(数字は違うかもしれません)。
- 解凍した中からさらに「data.tar.gz」というファイルを探し、これを解凍。→「data」フォルダができる。
- 解凍した「data」フォルダ内から「lib」というフォルダを探し、その中にある「twitter_oauth.rb」ファイルと「twitter_oauth」フォルダを使用したいRubyスクリプトと同じ所に貼り付ける。
以下、「oauth」「json」「mime-types」各ライブラリも2〜4を繰り返してダウンロードし、貼り付ける。
これでとりあえずPC上では動きました!
……バカでしょー?
つくったRubyスクリプトをサーバで使用するために その2
その1とは逆のアプローチ。SSHでサーバ側に必要なライブラリをインストールする方法です。
さくらインターネットはスタンダードプラン以上でTELNETやSSHを使えます。そうするとサーバ側のRubyに入ってないライブラリもユーザーディレクトリ?にインストールして使うことができるそうです。
使用したSSHクライアントはこちら↓
http://yebisuya.dip.jp/Software/PuTTY/
参考にしたのはこちら↓
さくらのレンタルサーバーに RubyGems をインストールする手順 - Google App Engine+Pythonで脱プログラミング初心者を目指す日記
なおブログ記事では途中でviエディタによる編集がありますが、私がインストールした1.3.7では
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin)
↓
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin /home/User/bin)
の書き換えは必要ありませんでした。なんか、$HOMEとかなってました。
参考にした記事のとおりにやってけば大体間違いなくGEMがインストールできるんですが、私がやったときは途中でエラーコード出て止まりました。GEMのインストール場所はユーザーディレクトリのなかの一箇所、と決めてたはずなのに、勝手にルートにインストールしに行って怒られてました。そりゃ怒られるわ。
で、そのエラーコードが出たときに参考にしたのがこちら↓
さくらサーバーに gem をインストールする際に「chown/chgrp: Operation not permitted」とエラーが出た場合 - make world