自演乙
定期投げかけソース
< ?php include_once 'Twitter.phpフルパス'; $now_g = date('G'); $now_i = date('i'); $a0=array("@ca_nada なあクマ吉さんなんで僕は目立たないんだい?", "@ca_nada 今日も奴に何も言えなかったよ…", "@ca_nada なあクマ三郎さんなんで僕はこんなにも目立たないのかな?", "@ca_nada 今日も奴に何も言えなかったよ…", "@ca_nada なあクマ三郎さんなんで僕はこんなにも目立たないのかな?", "@ca_nada なあクマ吉さんなんで僕は目立たないんだい?",); //Service_Twitter設定 require_once "Twitter.phpフルパス"; $user = 'ca_nada'; $pass = 'パスワード'; $st =& new Services_Twitter($user,$pass); $key = array_rand($a0); $post = $a0[$key]; if(! $st->setUpdate($post) ){ die('ERROR'); } //ここから $st->setCacheDir(dirname(__FILE__).'/cache/'); $st->enableModifiedCheck(); //Services_JSONを読み込む require_once "JSON.phpのフルパス"; //Services_JSONのインスタンスを取得 $json = new Services_JSON(); //リプライの取得とデコード $at = $json->decode($st->getReplies()); var_dump($at); //ここまではいらないので無視してください。 ?>
回したら発言するソースなので、cronで発言させたい時間に設定してあげてください。
自演リプライ
< ?php $username = "ca_nada"; $password = "ぱすわーど"; $filename = "data3.txtのフルパス(reply.phpのtxtファイルとは別)"; $host = "http://twitter.com/statuses/mentions.xml"; //返信一覧 $fp = @fopen($filename,'rb') or die("ファイルが開けません"); flock($fp, LOCK_EX); $line = fgets($fp, 64); fclose($fp); if(!empty($line)){ $last_id=$line; $host .="?since_id=".$last_id; } else{ $host .="?count=1"; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); $result = curl_exec($ch); curl_close($ch); $XML = simplexml_load_string($result); $i = count($XML)-1; $j = 0; while($i >= $j) { $var = $XML->status[$i]->text; $com = ereg_replace("\@$username", "", $var); $reply_name = $XML->status[$i]->user->screen_name; $name = $XML->status[$i]->user->name; $message = serif($reply_name,$name,$com); $id = $XML->status[$i]->id; tweet($message ,$username,$password,$id); $i--; } $string = $XML->status[0]->id; if(!empty($string)){ $dat = (string)$string; file_put_contents($filename,$dat,LOCK_EX); } function serif($reply_name,$name,$com){ $reply_name = "@$reply_name"; if(preg_match("/ca_nada/u", $reply_name)){ if(stristr($com, "クマ吉さん何で")){ $return =$reply_name." "."誰?"; } else if(stristr($com, "今日も奴に")){ $return =$reply_name." "."誰?"; } else if(stristr($com, "クマ三郎さんなんで")){ $return =$reply_name." "."ン?誰?"; } else if(stristr($com, "ン?誰?")){ $return =$reply_name." "."君の飼い主のカナダだよ"; } else if(stristr($com, "誰?")){ $return =$reply_name." "."カナダだよ!"; } else if(stristr($com, "君の飼い主")){ $return =$reply_name." "."オ前カナダッテワカリズライ カナダッポイ見タ目ニシロ"; } else if(stristr($com, "カナダッテワカリ")){ $return =$reply_name." "."そっか!顔が駄目なら別の部分でアピールすればいいんだ!"; } return $return; } } function tweet($message,$username,$password,$id) { $message =urlencode($message); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://twitter.com/statuses/update.xml'); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'status='.$message.'&in_reply_to_status_id='.$id); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); $buffer = curl_exec($ch); curl_close($ch); } var_dump($XML);//あった方が見やすいけど、気になる人は消してもいい。 ?>
私はこれで自演乙会話をしています。
cronの機嫌が良ければ、ちゃんと会話します。
今のところ、これでカナダさん以外のリプははじくことができています。
reply.phpに自演する垢をはじく設定をしてくださいね。(この場合はca_nadaです)
2人で1つのアカウントを持っている設定のbotさんで「私も自演乙したいです」
という人の参考になれば嬉しいです。< ?phpと離してやらないと2つのソースがくっついちまうので、わざと離しました。
コピペするときは、くっつけてやってください。