自動ランダムツイートするTwitter BOTをPHPとさくらインターネットで作る

PHPでランダムツイートをするTwitter BOTを作ってみました。

MontBlanc.です。
ある試みをするにあたって、Twitterで自動でURLを自動ツイートするBOTを作成したかったので、作ってみました。

必要なもの

Twitterアカウント(とTwitterアプリのアカウント+トークン)

これが無いと始まらない!!!笑
また、Twitterアプリケーションというものを作成・使用します。

サーバーとCRON

今回はさくらインターネットのサーバーコントロールパネルのCRON設定を使っています。
加えてBOTのスクリプトを仕込むためPHPファイルをアップするためのサーバーも必要です。

TwistOath

今回はこちらにお世話になりました。
https://github.com/mpyw/TwistOAuth

まずは準備

まずはBOTに使用するTwitterアカウントを作成します。
既存のアカウントでも問題なし。

アプリケーションを作成する

作成、もしくは既存のアカウントにログインした状態でTwitterの開発サイトにアクセスします。

スクリーンショット_2016-07-15_23_09_51
Create New App」からアプリ作成に入ります。
作成するアプリの情報入力に移動するので、下記を入力
スクリーンショット_2016-07-15_23_15_28
規約に同意の上、作成を選択するとアプリが生成されます。

アクセスキーとトークンを取得する

次に以下の情報を取得します。

・Consumer Key
・Consumer Secret
・Access Token
・Access Token Secret

先ほど作成したアプリを選択肢して、情報画面へ移動。
Consumer Key,Secretはタブ内の「Key and Access Tokens」に記載があります。
Access Tokenのふたつは同ページの「Your Access Token」下、「Create my access token」を押して生成が可能です。
これらの情報をメモなどしてひかえておきます。

ツイートするためのPHPを用意する

次にTwitterアプリにアクセスして、どのようにツイートするphpを用意します。
仕組みとしては、「phpファイルにアクセスすると、list.txtの行からランダムの行を選択してツイートする」ような流れになります。

TwistOathをダウンロード

下記からTwistOathをダウンロードします。

Warning: This package is abandoned and no longer maintained. Use mpyw/cowitter package instead. - GitHub - mpyw-junks/TwistOAuth: Warning: This package is aband...
右上の「Download ZIP」からもダウンロードができますが、今回必要なファイルは”TwistOAuth.phar”のみなので、こちらからでもダウンロード可能ですb

ツイートするphpを作成する

ファイルの構成はこんな感じ。

[twitter-bot]
└ list.txt → ツイートする内容を1行ごとに記述
└ twitter-bot.php → ツイートするスクリプト
└ TwistOAuth.phar

phpは以下↓

ツイートの内容を記載するlist.txtは行毎にツイートしたい内容を記入します。

テストだよ〜
あばばばば
なんてこった
 

これで、ファイル一式をサーバーにアップロード、”twitter-bot.php”にアクセスすると、phpが読み込まれ、ツイートがされるようになります。

CRONを使って設定した時間にPHPを発動するようにする

次にtwitter-bot.phpが定期的に発動するようにCRONの設定を行います。
cronとは、常駐プログラムの一種で、ユーザの設定したスケジュールに基づいて指定したコマンドやスクリプトなどを自動実行してくれるプログラムのことです。
今回は筆者が利用しているさくらインターネットでのCRON設定方法です。

サーバーコントロールパネルへアクセス

まずはさくらのインターネットにログインし、サーバーコントロールパネルにアクセスします。
(会員メニューログイン > 契約情報 > サーバ設定)
そこから左の”アプリケーションの設定“からCRONの設定にアクセスします。

CRONを設定する

次にCRONの設定をします。
新規項目の追加を選択し、実行コマンド欄に以下のコマンドを入力。

cd /home/(さくらのアカウント名)/www/(ディレクトリ名); /usr/local/bin/php (実行するPHPファイル名)

ディレクトリ名ではtwitter-bot.phpがある階層までを設定します。
次にCRONを発動する期間を設定、私は以下のように設定しました。
cron
月,日,時に*、分に*/30を入力。これで「30分毎」の設定になります。
コマンドが正しく入力されていれば、Twitterに指定した時間ごとにランダムでツイートされるようになります。
※短い期間で同じ内容を参照してしまうとTwitter側に「重複したツイート」と認識され、表示されない場合があるの注意!

今回の方法でBOT化したツイッターアカウント


30分毎に自動的にツイートが更新されていきます。

まとめ

以上の方法でTwitterBOTが作成できました!
複数のサービスで連携が必要という点ではめんどくさいかもしれませんが、PHPコピペでほぼ出来るので、結構簡単にBOTを作成することができましたb
他にも自動フォローや自動返信など色々出来そうなので今後もちくちくいじっていきたいと思います。

ではでは〜。

参考サイト

作り方概要:http://qiita.com/tsunet111/items/9309801cd3e3bcf6e32a
Twitter Oath:http://webkaru.net/php/twitter-bot/
CRON:http://wisteriahill.sakura.ne.jp/sakura_cron/index.html
TwistOath:http://www.braveryk7.com/wordpress/it/234/