home > php
twitter bot
April 20, 2011
下記の参考サイトを元に簡単なbotを作ってみました。
http://plus-lab-style.asia/archives/919
1. twitterにOAuthの認証に使用するアカウント(OAuthでtwitterを利用するbotまたはWebアプリのアカウント)で
ログイン済みの状態にした上で、アプリケーションの登録を行います。
http://twitter.com/oauth_clients
そこで取得したConsumer keyとConsumer secretの2つの値を使います。
2. 下記サイトよりバージョン2.0以上のファイルをダウンロードして下さい。
https://github.com/abraham/twitteroauth
この中のOAuth.phpとtwitteroauth.phpを使います。
3. 下記の情報をファイル名を「oauth_test.php」で同じ階層に保存します。
http://www.sdn-project.net/labo/oauth_test.txt
Consumer keyConsumer secretの2つの値を入れておきます。
これまでのファイルをサーバーにアップして「oauth_test.php」にアクセスして、OAuthの認証作業を行います。
アカウント認証ページが現れるので、「許可する」をクリックします。
すると、Access TokenとAccess Token Secretに値が入力された状態になっています。
4. あとは、先程取得した値をいれて下記のphpファイルを作成すれば完成です。
Consumer key、Consumer secret、Access Token、Access Token Secretの値をいれます。
index.php
require_once(“twitteroauth.php”);
//下の4つの変数に、実際の値を記述して下さい。
$consumer_key = “Consumer keyの値”;
$consumer_secret = “Consumer secretの値”;
$access_token = “Access Tokenの値”;
$access_token_secret = “Access Token Secretの値”;// メッセージ
//$message = "tweet sample1";// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);// TwitterへPOSTする
$req = $to->OAuthRequest(“https://twitter.com/statuses/update.xml”,”POST”,array(“status”=>”Test OAuth update.”));
header(“Content-Type: application/xml”);
echo $req;
?>
これで一式をサーバーにアップして、index.phpにアクセスすれば、
該当のtwitterアカウントにtweetされます。
【追記】
tweetの内容をテキストファイルからランダムで書き出すようにもできます。
先程のindex.phpファイルの$message部分を下記に変更すれば大丈夫です。
〜
//txtファイルの内容を、配列に格納
$tw_array = file("tweet.txt");//メッセージをランダムに投稿するキーを作成
$key = array_rand($tw_array,1);//投稿用メッセージの作成
$twe = $tw_array[$key];//配列から投稿するメッセージを読み込む
$twe = trim($twe);//メッセージの前後から空白を除去
$twe = preg_replace("@\n+@","\n",$twe);
$twe = explode("\n", $twe);
$message = $tw_array[$key];
〜
tweet.txt
tweet sample1
tweet sample2
tweet sample3
・・・
【追記20110426】
また定期的につぶやくにはCRONを使います。
下記のサイトに登録して設定すればいけるようです。
※日本からのアクセスは制限されているようでかなり不安定です。
http://www.cron-job.org/cgi-bin/cronweb
設定の方法
http://drupal.jp/guide/cron_task_cron-job_org
CRON(クーロン)とは
http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html
Tweet