・前回の記事
「【Twitter API】PEARのServices_Twitterを使ってフォロワーを取得、つぶやき、リムーブなどをしてみる(1)」
の続きです。
今回は最新100件フォロワーを取得して、
その中に相互フォローの人ではない人が居たらフォローをする。
といった自動フォロー返しBOTのようなものを作ってみたいと思います。
参考にしたサイト
[PEAR]Services_Twitterを使ってOAuth
PHP & JavaScript Room -Twitter REST API:ユーザー関連
フォロワー一覧を取得、相互フォローの判定をする
前回と同じようにServices_Twitterを使って取得します。
最新の100件のフォロワーを取得してユーザ名とフォローフラグを配列に保存します。
1 | $followers = $twitter ->statuses->followers( array ( "cursor" => "-1" ) ); |
3 | foreach ( $followers ->users as $user ){ |
4 | $user_list [] = array ( "name" => $user ->screen_name, |
5 | "following" => $user ->following ); |
following には相互フォローならtrue、
片思いフォローならfalseのbool値が入ります。
ユーザ名を指定してフォローする
ユーザ名を指定してフォローします。一行だけで簡単ですね。
1 | $ret = $twitter ->friendships->create( "【フォローしたいユーザ名】" ); |
フォローを失敗、つまりブロックをされていると
「ブロックされているのでこのユーザーをフォローすることができません.」
といった悲しいエラーメッセージが帰ってきます。
上記2つを組み合わせて、BOTのようなものを作ってみます。
最新100件のユーザ調べて自動フォロー返しをするサンプル
サンプルブログラムです。
01 | require_once ( 'Services/Twitter.php' ); |
02 | require_once ( 'HTTP/OAuth/Consumer.php' ); |
04 | $consumerkey = "登録した値" ; |
05 | $consumersecret = "登録した値" ; |
06 | $accesstoken = "登録した値" ; |
07 | $accessecret = "登録した値" ; |
10 | $twitter = new Services_Twitter(); |
11 | $oauth = new HTTP_OAuth_Consumer( $consumerkey , $consumersecret , $accesstoken , $accessecret ); |
12 | $twitter ->setOAuth( $oauth ); |
15 | $followers = $twitter ->statuses->followers( array ( "cursor" => "-1" ) ); |
17 | foreach ( $followers ->users as $user ){ |
19 | if ( $user ->following == FALSE ){ |
21 | $twitter ->friendships->create( $user ->screen_name ); |
26 | } catch (Services_Twitter_Exception $e ) { |
27 | echo $e ->getMessage(); |
これをcronか何かで定期的に走らせれば自動フォローBOTの完成です、恐らく。
フォロワーではなくフォローを取得し、フォロワーとの差分を取れば
相互フォロー出ない人を自動リムーブするようなBOTも作れそうですね。
ユーザ名を指定してリムーブする
ユーザ名を指定してリムーブします。デストローイ。
1 | $ret = $twitter ->friendships->destroy( "【リムーブしたいユーザ名】" ); |
ピンバック: 【WordPress】特定のカテゴリの記事とリンクをランダムにTwitterでつぶやくサンプルプログラム【Twitter API】 | 桜花満開