端くれプログラマの備忘録 PHP [PHP] 自動フォローバックするTwitter bot

[PHP] 自動フォローバックするTwitter bot

昨日作成したTwitter botをいじっているんだけど結構面白い。今回は自動フォローバックを実装したので覚え書き。

自動フォローバックとは

自分をフォローしてくれているんだけど、自分からはフォローしていない人を自動的にフォローする機能。リアルタイムじゃなくてcronを使って周期的に処理することで実現する。

自動フォローバックの原理

とても原始的。

  1. 自分をフォローしている人(フォロワー)のリストを取得 (Twitter API: followers/ids)
  2. 自分がフォローしている人(フォロー)のリストを取得 (Twitter API: friends/ids)
  3. 2つのリストをぶつけて、自分はフォローしていないけど自分をフォローしてくれている人を特定。
  4. 特定した人をフォローする (Twitter API: friendships/create)

サンプルコード

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));
            }
        }
    }
}