Rubyで書いたTwitterのbotをRaspberry Piで動かす
こんにちは。
現在web周りの勉強をしていて、とりあえずTwitterのbotをRubyで作りました。
Raspberry Piで動かすのになんでPythonじゃないんだ!って話ですけど、Rubyを勉強したかったので
手順
・キーの取得・twitter gem のインストール
・Rubyスクリプトを書く
・cronに登録
キーの取得
botスクリプトを実行させるためにTwitter Developerに登録します。まずはTwitterDeveloperのサイト Twitter Developers にアクセス
まずTwitterアカウントでログインをしてください。
次にフッターにある"TOOLS"の"Manage Your Apps"にアクセスします。
そしたら以下のような画面になると思うのでCreate New Appボタンをクリックしてください
以下を適当に入力して同意にチェックしたらCreate your Twitter applicationボタンを押してください
するとエラーが・・・
Twitterアカウントに電話番号を登録しろと怒られるので登録します。業者対策ですね。
※電話番号の登録の時に+81の続きを入力するのですが、この時電話番号の最初の0を抜いた番号を入力しないと登録できません。
無事に登録できました。
ここでKeys and Access Tokensタブに移動してConsumer KeyとConsumer Secretをメモします。
アクセストークンはToken ActionsのCreate my access tokenボタンをクリックして生成します。これもメモしてください。
以上でキーの取得は終了です。
twitter gemを追加する
Raspberry PiにRubyをインストールする手順は別記事にします。(メチャクチャ手間取った)
※追記:Rubyのインストール方法書きましたhyottokoaloha.hatenablog.com
Rubyにはgemという便利な機能があります。
gemというのは簡単に言うとコマンド一発でライブラリをネットからダウンロード、インストールし使える状態にしてくれるものです。
ここではTwitterAPIを使用するため twitter gem をインストールします。
以下のコマンドを入力してください。
$ sudo gem install twitter
※事前にアップデートしてください。
これでスクリプトを書く準備が整いました。
Rubyスクリプトを書く
事前に投稿したい文章をsentences.txtに1行ずつ書いてください。
ではスクリプト部分に移ります。
require 'twitter' client = Twitter::REST::Client.new do |config| config.consumer_key = "コンシューマーキー" config.consumer_secret = "コンシューマーシークレット" config.access_token = "アクセストークン" config.access_token_secret = "アクセストークンシークレット" end s=[] File.open("sentences.txt","r") do |l| l.each_line do |line| s.push(line) end end client.update(s.sample)
事前にTwitterDeveloperで取得した各キーをここで使います。
テキストファイル(ここではsentences.txt)から1行ずつ文章を読んで配列sに代入して最後にその配列の要素1つをランダムに取ってTwitterに投げています。
cronに登録する
cronとは、コマンドをスケジュール実行してくれるOSの機能です。
例えば、1時間おきにbotに呟かせたい時はcronに1時間ごとにスクリプト実行コマンドを叩くよう設定します。
以下のコマンドを入力してください
$ crontab -e
出てきた入力画面に以下のように追加します。
00 * * * * ruby ~/twitterbot/bot.rb
これは毎時00分に1度コマンドを実行せよという意味になります。
まとめ
Raspberry PiにRuby入れたりtwitter gemを入れたりするのにかなり手間取りました。。。
14行でbotが作れるのは素晴らしいですね。twitter gemに感謝です。
以下のサイトを参考にさせてもらいました。ありがとうございます。

Raspberry Pi 2 ラズベリー・パイ 超小型パソコン Pi 2 MODEL B
- 出版社/メーカー: きばん本舗
- メディア: エレクトロニクス
- この商品を含むブログを見る