ちょっと実験的に悪い遊びに手を染めまして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じゃないけど、一気に大量フォローすると、アカウントそのものが凍結されちゃうので要注意ね。体験済みです(汗