php发送qq消息

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php function fcontents($url,$cookie){ $ch =&n...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
function fcontents($url,$cookie){
	$ch = curl_init();
	curl_setopt ($ch, CURLOPT_URL, $url);
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
	curl_setopt	($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
	curl_setopt ($ch, CURLOPT_COOKIE, $cookie);
	curl_setopt($ch, CURLOPT_REFERER,$url);
	$fcontents = curl_exec($ch);
    return $fcontents;
}
function vpost($url,$data,$cookie){ // 模拟提交数据函数
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_COOKIE, $cookie);
    curl_setopt($curl, CURLOPT_REFERER,'https://d.connect.qq.com/proxy/sslproxy.html');
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
       echo 'Errno'.curl_error($curl);//捕抓异常
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}
//基础变量
$cookie="uin=o062717; skey=@1blZyf;";//小号QQ
$uin=intval($_GET["uin"]);
if(!$uin=="0"){
$ptime = time();
$ptime2 = date("Y-m-d H:i:s",time());
//获取用户名字
$nurl="http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=".$uin;
$user=fcontents($nurl,$cookie2);//获取信息的时候 cookie为空
preg_match("|\"nickname\"\:\"(.*)\"|isU",$user,$userarr);
$username = $userarr[1];
//获取sig值 带上cookie和来路能防止屏蔽
$surl="http://wpa.qq.com/msgrd?v=3&uin=$uin&site=qq&menu=yes";
$body=fcontents($surl,$cookie);
$body=str_replace("\u0026","&",$body);
preg_match("|Service=201&sigT=(.*)&sigU=(.*)\"|isU",$body,$sig);
$sigt=$sig[1];$sigui=$sig[2];
//echo '$sigt='.$sigt.';'.'$sigui='.$sigui.';';
$face=rand(0,110);$face2=rand(0,110);
//发送信息
if(!$sigt==''&&!$sigui==''){
$txt='[{"t":1,"index":'.$face.'},{"t":0,"text":"'.$username.'('.$uin.')\n"},{"t":0,"text":"\n"},{"t":0,"text":"咳咳咳 大家好\n\n"},{"t":0,"text":"机器人程序测试\n\n"},{"t":0,"text":"请忽视"},{"t":0,"text":"\n"},{"t":0,"text":"\n"},{"t":1,"index":'.$face2.'},{"t":0,"text":"'.$ptime2.'\n\n"},{"t":0,"text":"此条信息来自三叔机器程序!"}]';
//换行是在text里面加\n 如果是index 则加{"t":0,"text":"\n"},表情是{"t":1,"index":100}



$txt=urlencode($txt);//处理留言内容
$url = "https://d.web2.qq.com/webim/user/send";
$data ="pkg_num=1&index=0&msg_0={$txt}&sigt=$sigt&sigui=$sigui&tuin=$uin&clientid={$ptime}";
$result = vpost($url,$data,$cookie);
//echo $result;
if(strstr($result,":0")){
 echo "该QQ-----> $uin 发送成功!<br>";
 //echo $result;
}
else{
	echo "该QQ-----> $uin 发送失败!";
	echo $result;
	}
}
else{
	echo "该QQ-----> $uin 不支持此接口.";

}


}
else{
	echo "QQ号码无效-----> 请输入 http://www.xitongle.com/post.php?uin=QQ号码";
}
?>


  • 发表于 2018-03-19 14:34
  • 阅读 ( 1641 )
  • 分类:其他

条评论

请先 登录 后评论
不写代码的码农
三叔

422 篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除