今回もTwitter botネタ。今回は相互リンクしていないフォロワーを自動アンフォローする機能。
相互フォローとは
自分が相手をフォローしていて、相手も自分をフォローしてくれている状態。
自動アンフォローの原理
- 自分をフォローしている人(フォロワー)のリストを取得 (Twitter API: followers/ids)
- 自分がフォローしている人(フォロー)のリストを取得 (Twitter API: friends/ids)
- 2つのリストをぶつけて、自分はフォローしているけど自分をフォローしてくれていない人を特定。
- 特定した人をアンフォローする (Twitter API: friendships/destroy)
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
require_once('twitteroauth/twitteroauth.php'); $consumer_key = "xxxx"; $consumer_secret = "xxxxxxxx"; $access_token = "xxxxxxxx"; $access_token_secret = "xxxxxxxx"; $conn = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); if ($conn) { $followers = $conn->get('followers/ids', array('cursor' => -1)); $friends = $conn->get('friends/ids', array('cursor' => -1)); $count = 0; foreach ($friends->ids as $i => $id) { if (!in_array($id, $followers->ids)) { $conn->post('friendships/destroy', array('user_id' => $id)); $count++; } if ($count >= 50) { // API呼び出し回数制限(200回/時)があるので注意 break; // 適当なところでやめておく } } } |