MENU

「100%フォロー返しいたします!」的なPHPスクリプト。

ちょっと実験的に悪い遊びに手を染めましてw

Twitterでよく見る「100%フォロー返しいたします!」な機能をPHPで実装しましたので、公開してみます。
それにしても久しぶりにTwitter API絡みの記事だわ。

Pearを使ってますので、利用できないかたは自分でアップロードするなり何なりと。

まずはトークンの準備。

require_once 'HTTP/OAuth/Consumer.php';
$consumer = new HTTP_OAuth_Consumer(CONSUMER_KEY, CONSUMER_SECRET);
$consumer->setToken(ACCESS_TOKEN);
$consumer->setTokenSecret(ACCESS_TOKEN_SECRET);

CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRETの4つの定数は、Twitter Developersにてアプリを登録して取得してください。

そのまま進むとSSL絡みでOAuthで失敗すること多々なので、設定をちょっと緩々にしますw

$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', FALSE);
$consumer_request = new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$consumer->accept($consumer_request);

次にフレンドリストとフォロワーリストを取得します。

$friends = json_decode($consumer->sendRequest(
     'https://api.twitter.com/1.1/friends/ids.json',
     array(),
     'GET'
)->getBody())->ids;
$followers = json_decode($consumer->sendRequest(
     'https://api.twitter.com/1.1/followers/ids.json',
     array(),
     'GET'
)->getBody())->ids;

今回やりたいのは、フォローされているけど、まだフレンド申請をしていないユーザーをフォローする!ということなので、フォロワーリストからフレンド登録済みのリストの差分を取ります。

$list_append = array_diff($followers, $friends);

最後に、その差分のリストのユーザーを1個づつフォローします。

foreach ($list_append as $append)
{
     $consumer->sendRequest(
          'https://api.twitter.com/1.1/friendships/create.json',
          array('user_id' => $append),
          'POST'
     );
}

POST friendships/create自体はRate Limitedじゃないけど、一気に大量フォローすると、アカウントそのものが凍結されちゃうので要注意ね。体験済みです(汗