・前回の記事
「【Twitter API】PEARのServices_Twitterを使ってフォロワーを取得、つぶやき、リムーブなどをしてみる(1)」
の続きです。
今回は最新100件フォロワーを取得して、
その中に相互フォローの人ではない人が居たらフォローをする。
といった自動フォロー返しBOTのようなものを作ってみたいと思います。
参考にしたサイト
[PEAR]Services_Twitterを使ってOAuth
PHP & JavaScript Room -Twitter REST API:ユーザー関連

フォロワー一覧を取得、相互フォローの判定をする
前回と同じようにServices_Twitterを使って取得します。
最新の100件のフォロワーを取得してユーザ名とフォローフラグを配列に保存します。
$followers = $twitter->statuses->followers( array("cursor" => "-1" ) );
$user_list = array();
foreach( $followers->users as $user ){
$user_list[] = array( "name" => $user->screen_name,
"following" => $user->following );
}
following には相互フォローならtrue、
片思いフォローならfalseのbool値が入ります。
ユーザ名を指定してフォローする
ユーザ名を指定してフォローします。一行だけで簡単ですね。
$ret = $twitter->friendships->create( "【フォローしたいユーザ名】" );
フォローを失敗、つまりブロックをされていると
「ブロックされているのでこのユーザーをフォローすることができません.」
といった悲しいエラーメッセージが帰ってきます。
上記2つを組み合わせて、BOTのようなものを作ってみます。
最新100件のユーザ調べて自動フォロー返しをするサンプル
サンプルブログラムです。
require_once ('Services/Twitter.php');
require_once ('HTTP/OAuth/Consumer.php');
$consumerkey = "登録した値";
$consumersecret = "登録した値";
$accesstoken = "登録した値";
$accessecret = "登録した値";
try{
$twitter = new Services_Twitter();
$oauth = new HTTP_OAuth_Consumer($consumerkey, $consumersecret, $accesstoken, $accessecret);
$twitter->setOAuth($oauth);
//最新100件のフォロワーを取得
$followers = $twitter->statuses->followers( array("cursor" => "-1" ) );
foreach( $followers->users as $user ){
//相互フォローか判定
if( $user->following == FALSE ){
//フォローする
$twitter->friendships->create( $user->screen_name );
}
sleep(5);
}
} catch (Services_Twitter_Exception $e) {
echo $e->getMessage();
}
これをcronか何かで定期的に走らせれば自動フォローBOTの完成です、恐らく。
フォロワーではなくフォローを取得し、フォロワーとの差分を取れば
相互フォロー出ない人を自動リムーブするようなBOTも作れそうですね。
ユーザ名を指定してリムーブする
ユーザ名を指定してリムーブします。デストローイ。
$ret = $twitter->friendships->destroy( "【リムーブしたいユーザ名】" );

ピンバック: 【WordPress】特定のカテゴリの記事とリンクをランダムにTwitterでつぶやくサンプルプログラム【Twitter API】 | 桜花満開