自演乙

定期投げかけソース

< ?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つのソースがくっついちまうので、わざと離しました。
コピペするときは、くっつけてやってください。