webqq2协议分析和qq聊天机器人简单实现

webqq2协议分析和qq聊天机器人简单实现


2024年4月24日发(作者:哪款杀毒软件比较好用)

webqq2协议分析和qq聊天机器人简单实现

发表于 梁龙 25 February,2011(0)评论

webqq2协议分析和qq聊天机器人简单实现

通过webqq接口,可以实现发送qq消息接收qq消息等,这样,想实现一个qq聊天机器人,就不是什么

难事情了了,下面开始一步步做。

1。首先调用/check?appid=1003903&uin=qq号码,来获取该qq号码验证码之类

的信息。看返回结果决定是不是要输入验证码登陆。

如果返回:ptui_checkVC('1','95ab7db15e5ab17f50f25d33598259e83ccc098c4af2f8a4');需要输入验证码,

这里需要记住这个长字符串(获取验证码图片用)以及cookie

如果返回:ptui_checkVC('0','!MPG');不需要输入验证码,验证码值用!MPG代替。可能为其他字符串,但是

以感叹号开头

如果需要输入验证码:则调用

/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 = ineByName("javascript");

(new FileReader(new File("")));

Object t = ("md5(md5_3(""+p+"")+""+rCase()+"");");

return ng();

现在调用登陆接口,以获得相关的cookie。注意Referer。这个一定得加上,否则不成功:Referer :

/

/login?u=qq号码&p=密码和验证码加密后的字符串&verifycode=验证码

&remember_uin=1&aid=1003903&u1=http%3A%2F%%%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踢下线,而且此次

登陆才算上线时间。

地址:/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":"

8368046764001D636F6E6E7365727665725F77656271714031302E3133332E332E3234300B7

9026E040043F60C166D0000000A467041316D00000028F72A8722C988252AEF4E0268F1D26

A3D647F06F6

FF353A5C6CDAAA49ABB2FCDF0CEE2D8D64373AC2"}}

记住其中的psessionid。后面在发送消息和获取qq消息都需要这个参数。

4。发送一个qq消息给好友

地址:/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。循环获取消息接口:

通过这个接口你可以实时的不间断的获取最新的消息。

/channel/poll?

clientid=15778909&psessionid=8368046764001D636F6E6E7365727665725F77656271714031302E3133332

E332E3234300000326F00000B71026E040043F60C166D0000000A474676716D00000028E7D8

E447182


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1713927575a2346339.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信