昨日作成したTwitter botをいじっているんだけど結構面白い。今回は自動フォローバックを実装したので覚え書き。
自動フォローバックとは
自分をフォローしてくれているんだけど、自分からはフォローしていない人を自動的にフォローする機能。リアルタイムじゃなくてcronを使って周期的に処理することで実現する。
自動フォローバックの原理
とても原始的。
- 自分をフォローしている人(フォロワー)のリストを取得 (Twitter API: followers/ids)
- 自分がフォローしている人(フォロー)のリストを取得 (Twitter API: friends/ids)
- 2つのリストをぶつけて、自分はフォローしていないけど自分をフォローしてくれている人を特定。
- 特定した人をフォローする (Twitter API: friendships/create)
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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) { // Auto follow. $followers = $conn->get('followers/ids', array('cursor' => -1)); $friends = $conn->get('friends/ids', array('cursor' => -1)); if ($followers && $friends && !empty($friends->ids)) { foreach ($followers->ids as $i => $id) { if (!in_array($id, $friends->ids)) { $conn->post('friendships/create', array('user_id' => $id)); } } } } |