・前回の記事
「【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】 | 桜花満開