Ruby素人がTwitterBotを作ってみる:おおまかにやること・まとめ

RubyTwitterIntroduction_ruby001

はいどうもこんにちわ。 Ruby素人のぼくが、勉強がてらRubyでTwitterに自動でつぶやくBotを作ろうとした顛末を備忘録としてまとめてみます。

例によって詳しい人から見れば「なんだこいつ」という部分があるかもしれないけれど、みんな初めは素人なんだ!許せ!ということで多目に見てもらえるとありがたいです。

 

ということで、「とりあえずRubyでTwitterにつぶやくにはどうしたらいいんだい?」という最短の道を、さわり程度でまとめておきます。

それぞれの詳細は徐々に追加していくかもしれませんが、この記事では一旦こんなイメージでぼくはやりましたよ、というのをメモしておく程度にとどめておきます。

スポンサードリンク

関連記事

おおまかにやること

  • 1.Rubyを使える状態にする
  • 2.TwitterAPIを取得する
  • 3.TwitterライブラリGemをインストールする
  • 4.単純ツイートするスクリプトを組んでみる
  • 5.実行する
  • 6.ツイートされるかどうかを確認

Twitterの特定アカウントにツイートを書き込むだけの場合は、上記の流れを踏めばいけます。

ありがたいことに、難しい処理についてはTwitterライブラリというものが既に開発者向けに用意されています。

このライブラリに沿った記述で、数行〜数十行のスクリプトを作成して実行するだけで、TwitterAPIを利用してツイートするところまではこぎつけます。

1.Rubyを使える状態にする

これについては、とても賢い参考書が世の中に出回っているのでそれほど難しくないと思います。 各自、自分に合った方法でやりましょう。

 

ちなみにMacOSでは、デフォルトでRubyが動作する状態でインストールされていました。

コンソールからスクリプトを実行するだけで”Hello World”するまでは可能なので、Ruby勉強を始めようとしていた身からすると、ありがたいですよね。

MacにデフォルトでインストールされているRubyのバージョンを確認する方法 (Yosemite版) | Tipstour

ちなみにぼくのMac環境では2.0.0が入ってました。 とりあえずはこれを使って、Mac内からTwitterBotのスクリプトをCronで動かしてます。

ただまあこれだと自分のMacBookを終了していると当然動かないので、最終的にはレンタルサーバに移行していこうかなと思ったりしてます。

2.TwitterAPIを取得する

Cap 2016-06-23 9.44.18

スクリプトから自動でTwitterにツイートしたり、検索結果を取り込んだり、画像をアップロードするには、TwitterAPIキーを申請して取得する必要があります。

Twitter Developers

スクリプトを動かしたいTwitterアカウントにログインした状態で、上記ページから申請します。 (英語ページ)

アカウントの作成は特に問題ないと思うのだけど、APIキーをつくるにあたって電話番号の認証が必要です。

これ、日本ユーザにちょっと不親切で、一時期は正しい電話番号を入れてるのに認証されないという不具合もあったっぽいのだけど、色んな開発者さんが対応方法を各自のページでメモしているので、その辺を参照のこと…。

3.TwitterライブラリGemをインストールする

RubyGemというパッケージ管理システムに、Twitter連携用のライブラリをインストールして、このライブラリをRubyのスクリプトから読み込む形で使います。 要するにrequire ‘twitter’ですね。

僕はtwitter (5.16.0)という名称・バージョンのライブラリをインストールしてます。

sferik/twitter: A Ruby interface to the Twitter API.

TwitterGemのインストール方法

Twitter Gemをインストールする方法を追記しました。 管理者権限がある場合での手順ですが、参考にこちらもどうぞ。

【Ruby】管理者権限がある環境でTwitter Gemをインストールする方法 | Tipstour

4.単純ツイートするスクリプトを組んでみる

TwitterAPIキーとTwitterライブラリのインストールまで完了すれば、あとはスクリプトを組めばツイートできるところまで行けるはず。

実際にスクリプトに記述するキー情報は下記の4つです。

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

この4つのキー情報は、Twitter DevelopersでAPIキーを申請した際に確認できるので、この情報をスクリプト内に入れ込んでいくという感じですね。

Cap_2016-06-23_9_31_22

単純にツイートするだけだったら「Twitterライブラリを読込」「キー情報を格納」「ツイートする」までで、7行ぐらいのスクリプトで出来ちゃいました。

ツイートするだけのスクリプト

その「単純にツイートをするだけの短いスクリプト」を別記事に追記しました。 こちらも参照くださいな。

【Ruby】TwitterAPIを使って単純ツイートするスクリプト | Tipstour

5.実行する

スクリプトができたら、実行してみよう。

Botらしく定期的にツイートするようにするなら、Cronなどで自動的にスクリプトを実行するように設定すればいいと思います。

6.ツイートされるかどうかを確認

スクリプトを実行したら、ツイートできているかどうかをチェック。 これでツイートされていれば、とりあえずはバンザイですね。

下記は単純に「テスト」という文字列をスクリプトから実行してみた際のものです。

スポンサードリンク

 

以上です。

実際にTwitterBotらしい挙動をさせようとする場合にはもうちょっと色んなスクリプトを組んだりする必要があるのだけど、まずはスクリプト経由で単純ツイートできなきゃ何も始まらないので、とりあえずそのポイントまでにやることをおおまかにまとめました。

ちなみに今回僕はテストで作ろうとしている(していた)Botは、画像を定期的なタイミングで自動的にツイートするだけのBotです。

リプライ機能とか、一度ツイートした画像を連続してアップしないようにするとか、そういう挙動も追加していかないといけないなあとは思ってますが、とりあえずは試行錯誤しながら、色々と試してみようかなという感じですね。

それでは〜。