home > April 2011

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 keyConsumer secretの2つの値を使います。


2. 下記サイトよりバージョン2.0以上のファイルをダウンロードして下さい。
https://github.com/abraham/twitteroauth

この中のOAuth.phptwitteroauth.phpを使います。


3. 下記の情報をファイル名を「oauth_test.php」で同じ階層に保存します。
http://www.sdn-project.net/labo/oauth_test.txt

Consumer keyConsumer secretの2つの値を入れておきます。
これまでのファイルをサーバーにアップして「oauth_test.php」にアクセスして、OAuthの認証作業を行います。
アカウント認証ページが現れるので、「許可する」をクリックします。
すると、Access TokenAccess Token Secretに値が入力された状態になっています。


4. あとは、先程取得した値をいれて下記のphpファイルを作成すれば完成です。
Consumer keyConsumer secretAccess TokenAccess 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



Permalink | Comments (0)