twitterで特定のつぶやきをした人を自動でフォローするスクリプト

※この情報は2011/1/4のものです。現在(2013年)では古いので使えません。
※また、当時はTwitterが初期の頃でこんなこともありでしたが、今(2013年)Twitterはマナーを大事にするポリシーに変わっています。自己責任でどうぞ。

<?php
define("CONSUMER_KEY" , "");
define("CONSUMER_SECRET" , "");
define("OAUTH_TOKEN" , "");
define("OAUTH_TOKEN_SECRET" , "");
define("KEYWORD" , "特定のキーワード");
define("SEARCH_COUNT" , 10);
require_once("twitteroauth/twitteroauth.php");


// search 
function search() {
	$ch = curl_init("http://search.twitter.com/search.json?q=
" . urlencode(KEYWORD) . "&rpp=" . SEARCH_COUNT . "&lang=ja");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$res = curl_exec($ch);
	curl_close($ch);
	$ret = array();
	if (!$res) {
		fputs(STDERR , "Failed to get response\n");
		return $ret;
	}
	$json = json_decode($res);
	if (!$json) {
		fputs(STDERR , "Failed to get json\n");
		return $ret;
	}
	foreach ($json->results as $r) {
		if (isset($r->from_user)) {
			$ret[] = $r->from_user;	
		}
	}
	return $ret;
}

$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, 
OAUTH_TOKEN , OAUTH_TOKEN_SECRET);
// get friends
$friends_data = $connection->get("statuses/friends");
$friends = array();
foreach ($friends_data as $f) {
	if (isset($f->screen_name)) {
		$friends[] = $f->screen_name;	
	}
}

// search
$result = search();

foreach ($result as $r) {
	if (!in_array($r , $friends)) {
		// follow
		$connection->post("friendships/create", array("id" => $r));
		fputs(STDOUT , "Follow {$r}\n");
		$friends[] = $r;
		sleep(5);
	}
}
?>

keyword_follow_oauth.php で保存してください。

こちらでzipをダウンロードしてtwitteroauthフォルダをkeyword_follow_oauth.phpと同じディレクトリにおいて下さい。

参考
Twitterで特定のキーワードをつぶやいたユーザーを自動でフォローするPHPスクリプト (OAuth版)

おすすめ関連記事
twitterで特定のキーワードをつぶやいた人を自動でフォローする設定にしたので解説
twitter自動リムーブ(オートアンフォロー)機能を追加したので解説
5分で出来るさくらサーバーでcronの設定をする方法

参考書籍