プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、特定のTwitterアカウントのフォローしているけどフォローされていない人(もしくは、その逆)を抽出する
先に要点だけ書いておくと、やり方は

1.フォロワー一覧を取得する
2.フォロー一覧を取得する
3.「1.」と「2.」の差分を抽出する


です。
そのまんまですね。

それでは、いきなりサンプルを載せておきますφ(--)

<?php

    //「autoload.php」読み込み
    //「twitteroauth/」フォルダは本プログラムと同階層に配置
    require_once dirname(__FILE__) . '/twitteroauth/autoload.php';
    use Abraham\TwitterOAuth\TwitterOAuth;

    // 「Consumer key」値
    $ck = 取得した「Consumer key」の値;
    // 「Consumer secret」値
    $cs = 取得した「Consumer secret」の値;
    // 「Access Token」値
    $at = 取得した「Access Token」の値;
    // 「Access Token Secret」値
    $ats = 取得した「Access Token Secret」の値;

    //対象のID
    $screen_name = 【取得対象のアカウントのID】;

    // OAuthオブジェクト生成
    $toa = new TwitterOAuth($ck,$cs,$at,$ats);

    //----------------------
    // フォロワー一覧取得
    //----------------------
    //リクエストを投げる先
    $url = "followers/ids";

    //取得
    $res = $toa->get($url, compact('screen_name'));
    if (isset($res->errors[0])){
        print "error:" . $res->errors[0]->message . "<br>\n";
        exit;
    }else{
        $followers = $res->ids;
    }

    //----------------------
    // フォロー一覧取得
    //----------------------
    //リクエストを投げる先(フォロー一覧取得)
    $url = "friends/ids";

    //取得
    $res = $toa->get($url, compact('screen_name'));
    if (isset($res->errors[0])){
        print "error:" . $res->errors[0]->message . "<br>\n";
        exit;
    }else{
        $friends = $res->ids;
    }

    //----------------------
    // 差分抽出
    //----------------------
    print "■フォローしているけどフォローされていない人<br>\n";
    $diff = array_diff($friends, $followers);
    var_dump($diff);

    print "<br><br>■フォローされているけどフォローしてない人<br>\n";
    $diff = array_diff($followers, $friends);
    var_dump($diff);

?>

各々の処理については、必要に応じて、以下の記事を参考にして読み解いてください。
これらの記事でやったことの総括が今回の記事にまとまっています。
順番に読んでいけば理解できると思います。

PHP、Twitterへの自動投稿機能を作成(2015年9月版)。
PHP、特定のTwitterアカウントのフォロワー一覧を取得する
PHP、特定のTwitterアカウントのフォロー一覧を取得する
PHP、配列の差分を取得する

また注意点として、フォロワー数やフォロー数が5000人より多いと、このままでは使えません。
2015年11月現在、フォロワー一覧(フォロー一覧)の取得は一度のリクエストで5000人までです。
5000人を超える場合は、複数回に分けて取得してください。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事