没有合适的资源?快使用搜索试试~ 我知道了~
webqq2协议分析和qq聊天机器人简单实现.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 111 浏览量
2022-05-30
10:45:58
上传
评论
收藏 592KB PDF 举报
温馨提示
试读
13页
webqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdfwebqq2协议分析和qq聊天机器人简单实现.pdf
资源推荐
资源详情
资源评论
webqq2 协议分析和 qq 聊天机器人简单实现
发表于 梁龙 25 February,2011(0)评论
webqq2 协议分析和 qq 聊天机器人简单实现
通过 webqq 接口,可以实现发送 qq 消息接收 qq 消息等,这样,想实现一个 qq 聊天机器人,就不是什么
难事情了了,下面开始一步步做。
1。首先调用 http://ptlogin2.qq.com/check?appid=1003903&uin=qq 号码,来获取该 qq 号码验证码之类
的信息。看返回结果决定是不是要输入验证码登陆。
如果返回:ptui_checkVC('1','95ab7db15e5ab17f50f25d33598259e83ccc098c4af2f8a4');需要输入验证码,
这里需要记住这个长字符串(获取验证码图片用)以及 cookie
如果返回:ptui_checkVC('0','!MPG');不需要输入验证码,验证码值用!MPG 代替。可能为其他字符串,但是
以感叹号开头
如果需要输入验证码:则调用
http://captcha.qq.com/getimage?aid=1003903&&uin=qq 号码
&vc_type=95ab7db15e5ab17f50f25d33598259e83ccc098c4af2f8a4
获取验证码图片。。。
2。开始登陆,在登陆之前,需要将密码加密,tx 的加密方法很复杂,不过还好,弄到了他的 js 文件,然
后通过 java 的 ScriptEnginee 来执行这个 js 来获取加密后的字符串。。。
代码:
代码
1.
2.
3.
4.
5.
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine se = m.getEngineByName("javascript");
se.eval(new FileReader(new File("1.js")));
Object t = se.eval("md5(md5_3(\""+p+"\")+\""+code.toUpperCase()+"\");");
return t.toString();
现在调用登陆接口,以获得相关的 cookie。注意 Referer。这个一定得加上,否则不成功:Referer :
http://web2-b.qq.com/proxy.html
http://ptlogin2.qq.com/login?u=qq 号码&p=密码和验证码加密后的字符串&verifycode=验证码
&remember_uin=1&aid=1003903&u1=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Fstrong%
3Dtrue&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert
登陆成功后,要记住返回的 cookie 值。
如其中 ptwebqq,skey 等。
3。这还没有完成,还需要再次登录,这个好像就是 qq 聊天接口登陆了(刚才的登陆可以理解为登陆 qq
网站),只有这次登陆,才算真正登陆 qq,这个时候,如果你 qq 已经登陆,会把你的 qq 踢下线,而且此次
登陆才算上线时间。
地址:http://web2-b.qq.com/channel/login,把一个数据结构 post 给它就够了
r=%7B%22status%22%3A%22%22%2C%22ptwebqq%22%3A%22{1}%22%2C%22passwd_sig%22%3A%22%22%2C%
22clientid%22%3A%22{2}%22%7D
其中{1}是 ptwebqq,在第 2 步登陆后 cookie 返回的,{2}clientId,自己随便定义一个数字吧。
如果成功:
会返回一个 json 数据结构:
{"retcode":0,"result":
{"uin":qq 号
码,"mode":"master","index":1055,"port":38138,"status":"online","vfwebqq":"f72a8722c988252aef4e0268f
1d26a3d647f06f6ff353a5c6cdaaa49abb2fcdf0cee2d8d64373ac2","psessionid":"
8368046764001D636F6E6E7365727665725F77656271714031302E3133332E332E3234300000235100000B7
9026E040043F60C166D0000000A404746365677767041316D00000028F72A8722C988252AEF4E0268F1D26
A3D647F06F6
FF353A5C6CDAAA49ABB2FCDF0CEE2D8D64373AC2"}}
记住其中的 psessionid。后面在发送消息和获取 qq 消息都需要这个参数。
4。发送一个 qq 消息给好友
地址:http://web2-b.qq.com/channel/send_msg
同样是 post:r={"to":qq 号码,"face":0,"content":"[\"23\",[\"font\",{\"name\":\"宋体\",\"size\":\"10\",\"style\":
[0,0,0],\"color\":\"000000
\"}]]","msg_id":7780001,"clientid":"15778909","psessionid":"8368046764001D636F6E6E7365727665725F7
7656271714031302E3133332E332E3234300000326F00000B71026E040043F60C166D0000000A4042725946
34574676716D00000028E7D8E44718236B0C17365E824FD3817ED2EF6C879FEE88D07EA92D030CEA72EE8
E59309863128A3E"}
{"retcode":0,"result":"ok"}
需要把这个 json UrlEncode 一下再发送,否则会返回错误。
发送成功返回:{"retcode":0,"result":"ok"}
5。循环获取消息接口:
通过这个接口你可以实时的不间断的获取最新的消息。
http://web2-b.qq.com/channel/poll?
clientid=15778909&psessionid=8368046764001D636F6E6E7365727665725F77656271714031302E3133332
E332E3234300000326F00000B71026E040043F60C166D0000000A404272594634574676716D00000028E7D8
E447182
36B0C17365E824FD3817ED2EF6C879FEE88D07EA92D030CEA72EE8E59309863128A3E&t=1288591644319
返回格式:
{"retcode":0,"result":[{"poll_type":"message","value":{"msg_id":9712,"from_uin":qq 号码,"to_uin":qq 号
码,"msg_id2":217523,"msg_type":9,"reply_ip":2887452740,"time":1288591740,"content":[["font",{"size":
9,"color":"000000","style":
[0,0,0],"name":"\u5B8B\u4F53"}],"hello world"],"raw_content":"hello world"}}]}
其中的 poll_type 表示消息格式,message 就是普通的 qq 消息,可以看到发送人,发送时间,以及消息的
内容等。
此接口很特殊,在实现时,需要循环不间断调用,如果没有消息返回,该接口会一直等待到,有消息,读
取完后要立即再调用该接口。
6.其他接口
获取头像
http://face7.qun.qq.com/cgi/svr/face/getface?cache=0&type=1&fid=0&uin=号码
获取个人信息
http://web2-b.qq.com/api/get_single_info?tuin=qq 号码
获取签名
http://web2-b.qq.com/api/get_single_long_nick?tuin=qq 号码&t=1288751545148
获取好友列表
http://web2-b.qq.com/api/get_user_friends
r {"vfwebqq":"8f1383ba2239bb7295b100af215274aff1ee4be177b467cbc386fc53ff6606a8e5941aca61d
0eb51"}
获取在线的 qq 好友
http://web2-b.qq.com/channel/get_online_buddies?clientid=9547083&psessionid=8368046764001D63
6F6E6E7365727665725F77656271714031302E3133332E332E323430000062F000000B86026E040043F60C1
66D0000000A404F526B7558357668476D000000288F1383BA2239BB7295B100AF215274AFF1EE4BE177B46
7CBC386FC53FF6606A8E5941ACA61D0EB51&t=1288751548600
获取最近联系人
http://web2-b.qq.com/api/get_recent_contact
r {"vfwebqq":"8f1383ba2239bb7295b100af215274aff1ee4be177b467cbc386fc53ff6606a8e5941aca61d
0eb51"}
等等。。。
7.附件这是本人通过 java 写的一个实例客户端,启动后,处于接受 qq 消息状态,当收到好友发来的消息
时,回返回"然后呢?"。。。。
类似 qq 聊天机器人吧。。。
1.js 是 qq 密码的加密 js 文件。
剩余12页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 126641091882064LSPatch.apk
- 5G网络基础培训课件.zip
- 2024-spring-HIT-CS-大作业
- yolo目标检测项目实验
- downloadFile-1.hc
- C++课程设计:基于Qt的航班信息管理系统
- ADS7822UVerilog驱动,前面传的有点问题
- 基于python的高性能爬虫程序,使用了多线程+缓存+xpath实现的,这里以彼-岸图库为例,实现,仅用于学习交流
- 中分辨率成像光谱仪(MODIS)烧毁面积产品信息MODIS-C6-BA-User-Guide-1.2.pdf
- Screenshot_20240427_172613_com.huawei.browser.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功