PHPでTwitterへ自動でツイートするツールを作る
Twitter API を使っていくつか、PHPで自動的に行えるプログラムを作った来ましたが、今回はPHPでTwitter API を使い、Twitterへ投稿を行うプログラムを作ります。CRONと組み合わせると、定期的に自動でツイートを投稿する事が出来ます。
PHPとTwitter APIでツイートを行う
Twitter API を利用するには Twitter Application を作成したり、Twitter API を簡単に使えるようにする ライブラリ等を使用します。それらの利用方法等については以下の記事を参考にしてください
Twitter API、Apps を利用するのに携帯電話のでの認証が必須になったので、認証を行う方法。
最新のTwitterOAuthを使って Twitter API 1.1 を簡単に利用する方法
Twitter Application でアプリを作成し以下の情報をメモします、Access Token 関連は初期状態では存在しませんので generation で生成してください。また Permission の項目でwriteが出来るように権限を変更してください。
- Consumer Key (API Key)
- Consumer Secret (API Secret)
- Access Token
- Access Token Secret
PHPコード化
<?php //ライブラリの読み込み require_once("./twitteroauth/autoload.php"); use Abraham\TwitterOAuth\TwitterOAuth; //APIを利用するための情報を入れる $consumerKey = 'xxxxxxx'; $consumerSecret = 'xxxxxxx'; $accessToken = 'xxxxxxx'; $accessTokenSecret = 'xxxxxxx'; //接続 $connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret); $text = array( "テスト投稿", ); foreach ($text as $value) { $re = $connection->post("statuses/update", array( "status" => $value, )); }
PHPでのTwitterへのつぶやきはこのようなコードになります。まず最初にTwitter API を利用できるようにサポートしてくれるライブラリ twitteroauth を読み込みます。次にAPIを利用するための Twitter Application から取得した情報を入れます。その次にTwitter API へ接続を行います。
そして $connection->post にてパラメータを指定して実行します。$re には実行結果の返り値が入ります、$re に入れなくとも動きます。
foreach で、配列で指定した分だけ実行するようにしてあります。複数ワードを一度につぶやきたい場合などに便利です、今回の例では1つだけしか値がありませんが複数指定すれば順につぶやきます。foreach内で sleep() を利用すればディレイを設けてつぶやくことが出来ます。
Twitter では一度つぶやいた内容と同一のものはしばらくつぶやくことが出来ません。8ツイートぐらい間隔があくと再び同じツイートをする事が出来ます。また経過時間によっても、同じ投稿が可能になります。
最小構成
<?php //ライブラリの読み込み require_once("./twitteroauth/autoload.php"); use Abraham\TwitterOAuth\TwitterOAuth; //APIを利用するための情報を入れる $consumerKey = 'xxxxxxx'; $consumerSecret = 'xxxxxxx'; $accessToken = 'xxxxxxx'; $accessTokenSecret = 'xxxxxxx'; //接続 $connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret); //ツイートする $connection->post("statuses/update", array( "status" => "テスト投稿"));
foreeach や 返り値が不要な最小構成ではこのようになります。
あとはレンタルサーバー等にこのPHPを設置して、定期的に実行するようにCRONに登録してやると。自動ツイートBOTの完成になります。
COMMENT