您的位置:首页 > 编程语言 > PHP开发

PHP 模拟QQ登录及发送消息实现方法

2014-11-15 08:34 776 查看
实在闲的无聊写的利用CURL抓取3GQQ的网页实现的。

只是简单实现了功能,你可以自己修改代码实现更多可能。

如:定时发送消息、机器人客服、循环骚扰好友等各种无节操应用 = =||

废话不多说展示代码,分两个步骤完成。

第一步:登录获取sid,有sid是发送消息的前提。

header("Content-type:text/html;charset=utf-8");
//发送方QQ账号和密码
$qq = '';
$pwd = '';
//准备要POST数据
$data = array(
'qq' => $qq,
'pwd' => $pwd,
'bid_code' => '3GQQ',
'toQQchat' => true,
'login_url' => 'http://pt.3g.qq.com/s?aid=nLoginnew&q_from=3GQQ',
'q_from' => '',
'modifySKey' => 0,
'loginType:' => 1,
'aid' => 'nLoginHandle',
'i_p_w' => 'qq|pwd|',
);
//开始CURL模拟登录
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'http://pt.3g.qq.com/psw3gqqLogin');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
$file = curl_exec($ch);
curl_close($ch);
//分析登录是否成功
preg_match('%sid=(.*?)&%si',$file,$sid);
$sid = $sid[1];
if($sid){
echo '登陆成功!';
}else{
echo '登陆失败!请检查用户名和密码是否正确!';
exit();
}
获取到sid后就可以发送消息了,注意你只能发送给你的QQ好友或者QQ群!!!

第二步:发送消息,利用上一步获取到的sid。

header("Content-type:text/html;charset=utf-8");
//填写上一步中获取的sid,你也可以改成$_GET来传递sid
$sid = '';
//接收方的QQ和要发送的内容
$qq = '';
$text = '';
//准备要POST的数据
$data = array(
'u' => $qq,
'saveUrl' => 0,
'do' => 'send',
'on' => 1,
'aid' => '发送',
'msg' => $text,
);
//开始CURL模拟发送
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'http://q16.3g.qq.com/g/s?sid=' . $sid);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
$file = curl_exec($ch);
curl_close($ch);
//分析发送是否成功
preg_match('%<p align="left">(.*?)<br/>%si',$file,$callback);
$callback = $callback[1];
echo $callback;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: