RailsでTwitter botを作成

Rails プロジェクトで Twitter bot を作成する手順です。その名の通り twitter という名前の gem を使うと、とんでもなく簡単に Twitter の各種 API を操作できます。今回は単純に “Hello Twitter!” とつぶやく bot を、Rails の rake タスクとして作ってみました。

GitHub: sferik/twitter

Readme に大体のマニュアルが書いてあります。

— 環境 —
rails 4.1
ruby 2.1.2
twitter 5.13.0

Twitter bot 作成にあたって、以下のページが参考になりました。

3分でスッキリ! Oauth 1.0図解とRuby Twitter bot開発 | KumanBlog
rubyでtwitterのbotを実装する(第5世代のやり方) – Qiita

bot 用アカウントを作成し、コンシューマーキー&アクセストークンを取得

まずは bot 用の Twitter アカウントを作成してログインします。その後、以下の Twitter デベロッパーページからコンシューマーキーとアクセストークンを取得します。

Twitter Apps

「Create New App」をクリック。

1. PermissionsタブのAccess → Read and Write に設定。
2. Keys and Access TokensタブのAppication Settingsから「Consumer Key (API Key)」「Consumer Secret (API Secret)」を取得。
3. Keys and Access TokensタブのToken Actionsで「Create my access token」をクリック。
4. access tokenが生成されるので、Your Access Tokenの「Access Token」「Access Token Secret」を取得。

必要となるトークン類の準備は以上。

twitter gem をインストール

Gemfile

Twitter bot 用の Rake タスクを作成

Rails プロジェクト内に Twitter bot のプログラムを設置するので、rake タスクとして Twitter bot を作成することにしました。twitter という rake タスクをジェネレート。

rake タスクの中身を書きます。とりあえず、”Hello Twitter!” とつぶやくだけの bot です。

lib/tasks/twitter.rake

“YOUR_CONSUMER_KEY” など各種トークン類は、config/secrets.yml 等で設定すれば良いかと思います。client.update は140文字以上だとエラーを返す仕様だったので、独自の update メソッドでラップしました。以下あたり参考。

10分でできるTwitter bot @ Ruby – 酒と泪とRubyとRailsと
twitter bot 作成 – Qiita

ツイートを行う rake タスクはこれで完成。

ツイートの rake タスクを実行

以下のコマンドで、rake タスクを実行します。

このコマンド実行で、設定した Twitter bot 用アカウントに “Hello Twitter!” とつぶやかれるはずです。試したところ、連続で同じ文字列でツイートすると弾かれるようなので、連続して試す場合は文字列(tweet)を変更させる。

あとは、実際にツイートする内容のロジックを組み立てるのと、定期的にツイートさせるための cron 設定など。Rails の場合であれば、whenever を使って cron でツイートの rake タスクを実行すればOKです。whenever については以下参照。

wheneverでActiveRecord管理の古いセッション情報レコードを自動で削除 | EasyRamble

パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。下の本はこれの Rails3 版の本を読みましたが、入門的な内容で Rails の機能全体を網羅されています。
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!








  • トラックバックURL