フォローしてくれたユーザーも「フォロー返し」をすることで、Twitterのユーザー通しがどんどんつながっていきます。
エロ系などはほんとに勘弁してもらいたいんだけど、基本、相互フォローをしていくのがtwitterのルールなのでしょうね。
本垢と捨垢などを使い分けている人は、その中の幾つかがbotだったりすると思いますが、botの基本は相互ですね。
ということで、自動で相互フォローするプログラムを書きます。
考え方は、unfollowと同じで、フォロワーと友達の制御を逆にすれば、OKという比較的シンプルな内容です。
ソースコード
<?php
date_default_timezone_set('Asia/Tokyo');
//ライブラリ処理
require 'twitteroauth/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
//CLIの場合argvをREQUESTに変換する。
if(!isset($_SERVER['SCRIPT_URI']) && isset($argv)){
for($i=0,$c=count($argv);$i<$c;$i++){
if(!$argv[$i]){continue;}
//各クエリの分解
$q = explode("=",$argv[$i]);
if(count($q)<2){continue;}
if($q[0]!=''){
//requestに格納
$key = $q[0];
$val = join("=",array_slice($q,1));
$_REQUEST[$key]=$val;
}
}
}
if(!isset($_REQUEST['user']) || !$_REQUEST['user']){die("Error:not-query-user");}
//keyデータ処理
$key_json = json_decode(file_get_contents("./key.json"),true);
$key = $key_json[$_REQUEST['user']];
$connection = new TwitterOAuth($key['consumer_key'],$key['consumer_secret'],$key['access_token'],$key['access_token_secret']);
//フォロー処理
$res = $connection->post('friendships/create', array('id'=>$_REQUEST["uid"]));
print_r($res);
exit();
//フォロー数情報の表示
// フォロワー一覧取得
$res = $connection->get('followers/ids', array('cursor' => -1));
//$followers = $res->ids;
for($i=0;$i<count($res->ids);$i++){
$followers[$res->ids[$i]] = true;
}
while($res->next_cursor){
$res = $connection->get('followers/ids', array('cursor'=>$res->next_cursor));
for($i=0;$i<count($res->ids);$i++){
$followers[$res->ids[$i]] = true;
}
}
// フレンド一覧取得
$friends = array();
$unfollows = array();
$res = $connection->get('friends/ids', array('cursor' => -1));
for($i=0;$i<count($res->ids);$i++){
$friends[] = $res->ids[$i];
if($followers[$res->ids[$i]]==true){continue;}
$unfollows[] = $res->ids[$i];
}
while($res->next_cursor){
$res = $connection->get('followers/ids', array('cursor'=>$res->next_cursor));
for($i=0;$i<count($res->ids);$i++){
$friends[] = $res->ids[$i];
if($followers[$res->ids[$i]]==true){continue;}
$unfollows[] = $res->ids[$i];
}
}
//unfollow検索
echo "followers:".count($followers)."アカウント\n";
echo "friends:".count($friends)."アカウント\n";
echo "unfollows:".count($unfollows)."アカウント\n";
実行
$ twitter_post_follow.php user=*****
対象のアカウント数が300を超えた当たりで、responseエラーという風になって、動作が停止してしまいました。
その後、何度か再実行することで、全ての人に対してのフォローがされましたが、もしかすると上限数などを決めたりしないと、twitterサーバーの方がヘタってしまう可能性もありますね。
0 件のコメント:
コメントを投稿