小iqq机器人人的qq我加不成,为什么?

(安乃定:不吃头疼,吃了上瘾。)
等 级:
#1楼 得分:12
回复于:2009-08-03 12:53:53
(紫陌佳佳(本月分不好抢哦))
等 级:
#2楼 得分:0
回复于:2009-08-03 12:59:34
有人知道没
(Ferry)
等 级:
#3楼 得分:11
回复于:2009-08-03 13:03:45
可以参考MSN的小i机器人
(人生如梦)
等 级:
#4楼 得分:11
回复于:2009-08-03 13:12:19
c logs里有用LumaQQ实现机器人的看看
(紫陌佳佳(本月分不好抢哦))
等 级:
#5楼 得分:0
回复于:2009-08-03 13:21:09
(紫陌佳佳(本月分不好抢哦))
等 级:
#6楼 得分:0
回复于:2009-08-03 14:39:31
(.........)
等 级:
#7楼 得分:11
回复于:2009-08-03 14:49:09
1,分析tencent网页qq,得到网址入口及post格式,我记得05年有人发过,不过,tencent那帮人已经更改了
2,抓本地包,哪一个字节代表什么意思,当然了,还涉及到加密传输的问题的,当年qq刚出来的时候,消息轰炸机很流行的年代,就是没什么加密.验证直接发送了.网上也有相关资料
不过怎么说呢,
二种方式都是投入大,回报小,tencent稍微升下级,你的工作量就不小
(紫陌佳佳(本月分不好抢哦))
等 级:
#8楼 得分:0
回复于:2009-08-03 15:52:53
莫非做的QQ机器人这么难么
(满衣兄)
等 级:
#9楼 得分:11
回复于:2009-08-03 15:55:28
(紫陌佳佳(本月分不好抢哦))
等 级:
#10楼 得分:0
回复于:2009-08-03 16:08:01
引用 9 楼 yfqvip 的回复:
(紫陌佳佳(本月分不好抢哦))
等 级:
#11楼 得分:0
回复于:2009-08-04 10:19:47
(人在csdn飘,哪有不挨刀~~)
等 级:
#12楼 得分:11
回复于:2009-08-04 10:24:00
哇 这MM好厉害哦!
等 级:
#13楼 得分:11
回复于:2009-08-04 10:24:49
顶的94美女!
(人在csdn飘,哪有不挨刀~~)
等 级:
#14楼 得分:0
回复于:2009-08-04 10:25:28
(紫陌佳佳(本月分不好抢哦))
等 级:
#15楼 得分:0
回复于:2009-08-04 12:40:12
(不死周郎)
等 级:
#16楼 得分:11
回复于:2009-08-04 13:49:11
就如7#老兄所说,实现不困难,主要难点是对腾讯的依赖太高!
(天之骄子)
等 级:
#17楼 得分:11
回复于:2009-08-04 14:02:04
楼主挺牛啊
等 级:
#18楼 得分:0
回复于:2009-08-04 14:49:10
该回复于2009-08-05 09:34:57被管理员删除
(潜心研究GDI+)
等 级:
#19楼 得分:0
回复于:2010-01-01 03:19:35
引用 8 楼 jiang_jiajia10 的回复:
莫非做的QQ机器人这么难么
的确,很难!
(bigchina4)
等 级:
#20楼 得分:0
回复于:2010-01-16 14:02:39
注意 _ : DYLIKE 是骗子,我打了500块叫他定做程序,现在他收到钱就不见踪影了!大家可别相信他!真的,我的QQ 是 535636992,后来我又收到了消息,也有不少网友受骗!!大家请注意,有疑惑,可以加我QQ !!!
  想加入他的QQ群,他就把我T了
发我与他的QQ群里的一个网友的聊天记录给大家看:
(小猪快游是我,我叫DYLIKE代做了个程序,汇钱过去现在人不见了,他的邮箱还说他已经不在人世了...去他的群说理又被T)
□遮月□
20:17:25
什么钱啊?
小猪快游/pig 20:17:45
你想知道?
遮月
20:17:53 遮月
20:17:58
小猪快游/pig 20:17:57
为何?
遮月
20:18:33
很想知道
遮月
20:18:43
估计跟小丁有关
遮月
20:19:15
可以告诉我吗
遮月
20:19:54
遮月
20:20:08
遮月
20:20:15
可以 告诉我怎么回事吗
小猪快游/pig 20:20:48
遮月
20:21:07 遮月
20:21:22
怎么了 我看到你在和他要钱呢
小猪快游/pig 20:21:27
遮月
20:21:37
为什么啊
小猪快游/pig 20:21:34
我朋友请他做了一个GDI程序
小猪快游/pig 20:21:41
说好前几天交差
小猪快游/pig 20:21:44
现在打钱过去了
遮月
20:21:53
小猪快游/pig 20:21:49
没踪影,不回复
小猪快游/pig 20:21:54
刚才不是心虚,把我T了嘛
遮月
20:22:05
晕 挨骗了?
遮月
20:22:48
骗了你多少啊
小猪快游/pig 20:23:08
小猪快游/pig 20:23:13
你相不相信?
遮月
20:23:20
我说呢
刚才他让我踢你 我每管
小猪快游/pig 20:23:21
你请他做过程序没?
小猪快游/pig 20:23:27
他是个骗子。
遮月
20:23:34
小猪快游/pig 20:23:39
刚才是丁的QQ叫你做的?
遮月
20:23:58
我想买他那小丁 可是现在也没有买
遮月
20:24:04
小猪快游/pig 20:24:02
小丁有什么用?
遮月
20:24:14
就是群聊
小猪快游/pig 20:24:14
他刚才是用哪个QQ号与你聊天,叫你T我?
小猪快游/pig 20:24:17
发号给我。
遮月
20:24:27
就是 DY
小猪快游/pig 20:24:26
DYLIKE?
遮月
20:24:34
小猪快游/pig 20:24:30
你确认是他本人?
遮月
20:24:50 遮月
20:24:57
看到了吗?
遮月
20:25:41
你怎么不报警呢?
小猪快游/pig 20:25:44
5463600 是他的QQ?
小猪快游/pig 20:26:02
5463600 是他的QQ?
遮月
20:26:09
20353841
小猪快游/pig 20:26:24
你确认是他本人还是其他人?
遮月
20:26:40
小猪快游/pig 20:26:38
理由?》
遮月
20:27:00
不需要理由 肯定是本人
小猪快游/pig 20:27:23
您为何要帮我呀?您既然是他的管理员。
遮月
20:27:45
我讨厌骗人的
小猪快游/pig 20:27:58
小猪快游/pig 20:28:04
他是怎么叫你T我的
小猪快游/pig 20:28:06
发聊天记录给我。
遮月
20:28:34 遮月
20:28:44 遮月
20:28:53 小猪快游/pig 20:29:36
他自称高手,我觉得很有意思
小猪快游/pig 20:29:41
加上你的个性签名。 遮月
20:30:08
哈哈 你能看出我的个性签名的 意思吗 小猪快游/pig 20:30:17
看得出 小猪快游/pig 20:30:28
社会浮躁,很多人做点小程序就自称高手。 遮月
20:30:59
我是进了群 认识这个 自称高手的群主才写的 小猪快游/pig 20:31:20
哦 遮月
20:31:30 小猪快游/pig 20:31:33
你觉得他吹嘘在哪里? 小猪快游/pig 20:31:36
发聊天记录来。 遮月
20:32:18
我感觉他会点东西 貌似没人比他强 小猪快游/pig 20:32:27
很专制啊 小猪快游/pig 20:32:30
不允许别人说几句 小猪快游/pig 20:32:35
看来心虚就T我 遮月
20:32:43
对啊 小猪快游/pig 20:32:58
您看邮件:
DYLIKE』
致 我 显示详细信息
20:30 (0分钟前) 他已不在人世,汇款将在下个月返回你帐户! 小猪快游/pig 20:33:03
我发邮件给他了 小猪快游/pig 20:33:13
他回信是这样的?他不会是死了吧? 遮月
20:33:36
哈哈 别逗了 一会我发群去 让他自己看看 小猪快游/pig 20:33:46
他到底是什么样子的? 小猪快游/pig 20:33:55
我在CSDN经常看见他的贴子。 遮月
20:34:04
我只知道 他很好吹嘘 小猪快游/pig 20:34:19
你是程序员吧? 遮月
20:34:33
我不是 只是爱好 小猪快游/pig 20:34:31
哦 小猪快游/pig 20:34:43
我是.net程序员,NICE TO MEET U 遮月
20:35:06
我也是学NET的 可是懂得很少 小猪快游/pig 20:35:03
哦 遮月
20:35:21
你打算怎么办 你也是写程序的 怎么让他给你作啊 小猪快游/pig 20:35:59
我对图像处理不熟悉 小猪快游/pig 20:36:01
他说他熟悉 遮月
20:36:19
好像他会 遮月
20:36:33
不过我对他写的东西没什么兴趣 小猪快游/pig 20:37:11
哦 小猪快游/pig 20:37:15
是“会”。 小猪快游/pig 20:37:25
熟到什么程度,要好好研究。 遮月
20:37:41
不会 只是自己研究罢了 小猪快游/pig 20:37:49 遮月
20:38:00
群主人品有问题 遮月
20:38:25
每天我无聊的时候 就看群主在群里聊天 遮月
20:38:32
解闷 小猪快游/pig 20:38:32
随便发一段聊天记录给我。 遮月
20:38:44
哦 小猪快游/pig 20:38:38
发他的聊天记录给我看看。 遮月
20:39:39 小猪快游/pig 20:40:13
我感觉 小丁是人为操作的吧。 小猪快游/pig 20:40:20
我用过IBM的文字识别都没有这么强。。。 遮月
20:40:28 遮月
20:40:50
但是回复 很快 小猪快游/pig 20:40:50
哦 小猪快游/pig 20:40:53
五笔打字快 遮月
20:41:25
会不是解开 聊天记录 读取呢 遮月
20:41:32
我也观察好久了 遮月
20:42:05 遮月
20:42:13
这个是他做的界面 小猪快游/pig 20:42:47
哦 ----以下是今天的--------
日期:2010-1-16 小猪快游/pig 13:18:57
你好 遮月
13:19:09
你好 小猪快游/pig 13:19:09
昨晚要说什么了 小猪快游/pig 13:19:15
那个DYLIKE 现在如何了 遮月
13:19:57
还那样 没什么 就是现在说话少了 遮月
13:21:52
你学NET多久了 小猪快游/pig 13:22:12
3年? 遮月
13:22:25
哦 知道了 遮月
13:22:41
会不会觉得乏味呢 遮月
13:23:15
昨天有个人 问DY 这个事情着 遮月
13:23:51
DY就把那人给T了 小猪快游/pig 13:26:36
不会啊, 小猪快游/pig 13:26:44
怎么问的,发聊天记录过来? 遮月
13:27:05
我的聊天记录 没了 我直接跟你说吧 遮月
13:27:18
昨天一个人问他 是不是该别人钱了 遮月
13:27:41
他说不是他接的 貌似那个人对他好像知道 什么 遮月
13:27:57
问他 如果不是你接的 你怎么用DY的号 遮月
13:28:07
还用人家的小丁 遮月
13:28:17
难道自己没有号吗 遮月
13:28:26
结果DY就给他T了 遮月
13:28:51
然后T完 还在群里说 不是他接的 遮月
13:29:18
让我T那人 我没说话 小猪快游/pig 13:31:01
晕 小猪快游/pig 13:31:03
怎么这么搞笑 遮月
13:31:18
不是你们吗 小猪快游/pig 13:32:10
不是 ~~~~~~~~~~
相关问题登录 只需一步,快速开始
通过这个窗口,关注跟踪我们的研发进展
帮助网站实现一站式服务 -
QQ网址导航
当前离线
阅读权限
最后登录
2011-1-20
注册时间
2008-4-6
Member, 积分 168, 距离下一级还需 32 积分
在线时间
注册时间
2008-4-6
发表于 2008-5-4 10:36:00
UCH-QQRobot1.2 GBK版本.(5.8更新版)
考虑到大部分虚拟机不支持SOAP(WebService),现已放弃SOAP,采用XMLRPC方式,现在已不需要在服务器上再设置了,已全面支持PHP4/PHP5,用PHP4的朋友可以测试一下
(已在多个站点测试,基本稳定,请放心使用.支持虚拟机,
QQRobot文件夹只在能上网的地方执行就可以了
.防恶意灌水等问题都已解决.)
支持虚拟主机、独立主机,对主机无特殊要求,机器人运行不需要在服务器,只需要24小时在线即可。
演示地址:
土哥 QQ: 6710284
只需要将imserver拷到你的UCH根目录下就可以了,现改为调用UCH的config.php,不需要任何修改.
2.QQRobot为机器人执行文件,
放到能上网的上地方就可以了
,修改QQRobot.exe.config文件,有6处,有汉字注明的地方. (QQRobot执行环境, dotnet framework 2.0)
当前功能:
绑定方法:首先在个人设置QQ栏填写自己的QQ号码,然后把机器人QQ加为好友即可实时发布迷你博客和接收会员消息!
1.?或help或帮助 查看帮助信息
2.站内会员间互发信息请采用 @会员用户名 聊天内容
3.不保存聊天记录到博客采用
!会员用户名 聊天内容
4.查询城市天气预报 ?TQ 城市名 或 ?天气 城市名
5.查询IP地址 ?IP IP地址
管理员QQ:
用此号对会员发信息不会出现 某某对谁说.....,相当于是机器人的身份发信息.
!group 内容
可以对站内绑定QQ的用户群发信息.
5.6更新
imserver/doing.php (只需将上传到空间更新就可以了)
qqrobot\qqrobot.exe (修复了论坛里提到的一些问题)
qqrobot\qqrobot.exe.config (增加了MAXLEN,设置发送的最大字节数,一个汉字=两个字节,根据自己的情况做相应的修改)
最小化时到系统托盘。
5.7更新
彻底放弃WebService方式,采用XMLRPC,不需要在服务器上做任何设置。今天把代码优化了一下,加上了HTTP认证。完善了管理员群发功能,对QQ号码验证处理(这个在UCH里设置QQ时控制会省很多事),对超长号,非数字等号导致监控程序出错自动下线进行了处理。
现在把UCH数据处理接口加了个认证,现在采用 HTTP Basic Authorization.
以下是QQRobot.exe.config.
add key=RPCURL value=http://你的网址/imserver/doing.ph quot; /
机器人与UCH数据数据交互的地址,压缩包里的imserver文件夹放到UCH网站根目录下就可以了,当然imserver文件夹名也可以改,这里与之对应就可以了。
add key=URL value=你的UCH网址 /
add key=QQ value=机器人QQ号码 /
add key="
ASSWORD value=密码 /
add key=ROBOT value=机器人昵称 /
add key=SYSQQ value=管理员QQ号 /
对会员发信息,不会出现“XX对您说...”,机器人的身份。对站内用户群发信息。
add key=MAXLEN value=400 /
对机器人发送信息的最大字节数,一个汉字2个字节。
add key=AUTHUSER value=admi quot; /
HTTP认证的用户名 doing.php文件中对应的 define(AuthUser, admi quot;); 与之相对应
add key=AUTHPASSWORD value=admi quot; /> HTTP认证的密码 doing.php文件中对应的define(AuthPa word, admi quot;); 与之相对应
add key=HELP value=欢迎您使用{0} 网址:{1} \n\n绑定方法:首先在个人设置QQ栏填写自己的QQ号码,然后把我加为好友即可实时发布迷你博客和接收会员消息!\n\n站内会员间互发信息请采用 @会员用户名 聊天内容\n\n不保存聊天记录到博客采用 !会员用户名 聊天内容\n\n查询城市天气预报 ?TQ 城市名 或 ?天气 城市名\n\n查询IP地址 ?IP IP地址 /
自定义帮助信息。{0}表示机器人昵称,{1}表示你的UCH网址,\n表示换行。
5.8更新
有人反映采用HTTP认证后出问题了,目前我的演示用的就是这个HTTP认证的,具体原因不知,今天改了一个无HTTP认证的版本,这个认证的主要目的是防止别人知道了你这个接口,利用它发垃圾信息,只要改下imserver文件夹名,或doing.php的名称就可以了,然后在QQRobot.exe.config文件里做相应的修改就可以了
今天主要更新了自动上线隐藏至任务栏
空间是IIS+PHP的请下载无认证版
做了一个简单的演示,说明此方法可行,在网页上发信息QQ上的提示
演示地址:
绑定QQ号后,在网页上的迷你博客发信息,通过自己的QQ提示,:)这是一个简单的开始,等UCH开源后再来完善了。
当然版本中并无此功能,只是尝试!:)
今天完善了一下通过网页发信息到QQ,体验良好,通过网页发迷你博客,会在自己的QQ上提示。
在网页中发信息目前支持 @用户名 内容 绑定了QQ的用户将会弹出消息。
还不知道要做些什么功能,大家来提吧!也希望会PHP的朋友分享实现代码。
初步实现加智能聊天功能,不过还很弱,可以对机器人发送 +问题:*** 的方式教机器人说话。
现在发信息到迷你博客采用 @发至迷你博客的内容
教机器人说话采用
+好玩:只要心情愉快哪里都好玩!
然后就可以问机器人:
有什么好玩的 或 好玩吗? 或 不好玩
机器人都会回复那句话
本帖最后由 zbage 于 2008-5-11 13:58 编辑
2008-5-8 14:55:25 上传
下载次数: 13521
274.09 KB, 下载次数: 13521
2008-5-8 14:55:25 上传
下载次数: 13024
273.46 KB, 下载次数: 13024






当前离线
阅读权限
最后登录
2010-10-19
注册时间
2005-9-14
在线时间
129 小时
注册时间
2005-9-14
发表于 2008-5-4 10:38:32
顶,强力推荐
今天的积累,明天的收获
当前离线
阅读权限
最后登录
2011-6-21
注册时间
2005-11-24
King, 积分 1951, 距离下一级还需 1049 积分
在线时间
28 小时
注册时间
2005-11-24
发表于 2008-5-4 10:40:42
非常推荐
当前离线
阅读权限
最后登录
2011-7-29
注册时间
2006-6-22
King, 积分 1070, 距离下一级还需 1930 积分
在线时间
144 小时
注册时间
2006-6-22
发表于 2008-5-4 10:41:00
作个记号 :) :)
当前离线
阅读权限
最后登录
2011-7-21
注册时间
2007-12-3
King, 积分 2072, 距离下一级还需 928 积分
在线时间
46 小时
注册时间
2007-12-3
发表于 2008-5-4 10:42:42
测试成功感谢分享~~
提供测试
本帖最后由 jolon1019 于 2008-5-6 00:11 编辑
单版论坛演示
当前离线
阅读权限
最后登录
2011-2-26
注册时间
2005-10-14
Lord, 积分 557, 距离下一级还需 443 积分
在线时间
注册时间
2005-10-14
发表于 2008-5-4 10:42:45
一页..编辑............
当前离线
阅读权限
最后登录
2011-7-21
注册时间
2007-12-3
King, 积分 2072, 距离下一级还需 928 积分
在线时间
46 小时
注册时间
2007-12-3
发表于 2008-5-4 10:43:40
用QQ发 会员头像不上升~~能不能解决
本帖最后由 jolon1019 于 2008-5-6 21:21 编辑
单版论坛演示
当前离线
阅读权限
最后登录
2011-7-29
注册时间
2004-5-6
在线时间
199 小时
注册时间
2004-5-6
发表于 2008-5-4 10:44:08
好贴...收藏了.
当前离线
阅读权限
最后登录
2011-7-21
注册时间
2007-12-3
King, 积分 2072, 距离下一级还需 928 积分
在线时间
46 小时
注册时间
2007-12-3
发表于 2008-5-4 10:50:22
2.QQRobot为机器人执行文件,放到能上网的上地方就可以了,修改QQRobot.exe.config文件,有6处,有汉字注明的地方. (QQRobot执行环境, dotnet framework 3.0)
dotnet framework 3.0 (50.3M) 下载地址
这个啥意思 不明白,能上网的地方?我家的电脑可以不?
单版论坛演示
当前离线
阅读权限
最后登录
2011-7-30
3278 个
注册时间
2006-11-22
Genius, 积分 13083, 距离下一级还需 36917 积分
在线时间
313 小时
注册时间
2006-11-22
发表于 2008-5-4 10:51:16
服务器不还要支持SOAP,m tring~ 1
您需要登录后才可以回帖
发表回复
回帖后跳转到最后一页
热心会员
我热心我光荣
) GMT+8, 2011-7-30 05:38
, Proce ed in 0.100037 second(s), 12 queries
, Memcache On.
Powered by
2001-2011
积分 0, 距离下一级还需:: :: :: :: :: :: 220
随笔 ::
0 文章
2981 评论
75 引用
自从博客园闪存发布了QQ机器人以后,闪存数量一下子就上升了很多。很多人也一直都在询问QQ机器人是如何开发的,这足以说明QQ在中国不仅仅是普通人使用的IM工具,在程序员圈子里也相当有人缘的,其老大地位不容怀疑啊。我这篇也算是给解答一些朋友的疑惑吧。
所谓的IM机器人(QQ,MSN),其实就是一个简化版的IM客户端(QQ,MSN)。利用这个简单的客户端连接到IM服务器,接收和发送消息来达到自动回复的目的。可惜,.NET中并没有开源的QQ机器人的开发包(MSN,有DotMSN,详见《
》)。博客园使用的是商业组件,而对大部分人来说更希望是免费的。.NET中没有开源开发包,但是J***A中却有。在Liunx等其它非Windows平台下,会有很多的开源QQ,其中的
也算是比较有名的开源QQ了,你可以从它的官方主页上了解更多的信息。在网络上也已经有人根据LumaQQ的协议,使用C#来开发机器人了。遗憾的是,没有一个是开源的。没有也罢,那我们就直接使用J***A版本来的LumaQQ来开发自己的机器人吧。
其实使用J***A语法,对于我们来说并不是一件难事。我想大家主要的麻烦就在于如何去使用J***A的开发工具,引用LumaQQ的包,以及编译,调试,打包和部署。但这些在这里都不是难事,我会提供引用好了点整个的Ecli e解决方案(工作空间)。你下载了,直接在这个空间下开发编辑源代码即可。下面先来说说简单的原理。
原理部分
这个机器人,我们直接开发一个一直运行的机器人即可。如果你对J***A本身并不是很了解的话,那么我建议QQ机器人本身只提供一个QQ客户端收发信息的作用,并不将机器人逻辑写在这个机器人客户端里面,把机器人逻辑写到一个WebService中。一方面你可以用你最擅长的语言来开发WebService;一方面,如果你需要多种平台的机器人(MSN机器人等)这部分的逻辑是可以公用的,而不需再次去开发测试这部分。
代码部分
关于LumaQQ接口开发机器人,网上已经有很多的代码了,我也是从网上直接拷贝的代码下来的。最关键的代码有以下两部分:
CODE 1:设置参数,登录代码
private
co ect()
client =
QQClient();
client.addQQListener(
client.setCo ectionPoolFactory(
PortGateFactory());
QQUser(739330764,
"qqrobot"
user.setStatus(QQ.QQ_LOGIN_MODE_NORMAL);
client.setUser(user);
//TCP登录
user.setUdp(
client.setTcpLoginPort(8000);
client.setLoginServer(
"219.133.48.103"
//UDP登录
//user.setUdp(true);
//clent.setLoginServer("sz.tencent.com");
//client.setProxyType("Socks5");
// client.setProxy(new InetSocketAddre ("AF25",1080));
client.login();
(Exception ex)
ex.printStackTrace();
//client.release();
这部分代码里面提供了两种方式:TCP和UDP来登录到服务器。大家都知道QQ直接这两种方式的登录,但是需要使用不同的服务器地址。
CDOE 2:事件处理代码
qqEvent(QQEvent e)
(e.type)
QQEvent.QQ_LOGIN_SUCCESS:
"QQ_LOGIN_SUCCESS"
QQEvent.QQ_LOGIN_FAIL:
"QQ_LOGIN_FAIL"
"reco ect"
co ect();
// client.release();
//System.exit(0);
QQEvent.QQ_LOGIN_UNKNOWN_ERROR:
"QQ_LOGIN_UNKNOWN_ERROR"
"reco ect"
co ect();
// client.release();
//System.exit(0);
QQEvent.QQ_LOGIN_REDIRECT_NULL:
"QQ_LOGIN_REDIRECT_NULL"
"reco ect"
co ect();
// client.release();
//System.exit(0);
QQEvent.QQ_CONNECTION_LOST:
"QQ_CONNECTION_LOST"
"reco ect"
co ect();
// client.release();
//System.exit(0);
QQEvent.QQ_NETWORK_ERROR:
"QQ_NETWORK_ERROR"
"reco ect"
co ect();
// client.release();
//System.exit(0);
QQEvent.QQ_CONNECTION_BROKEN:
"QQ_CONNECTION_BROKEN"
"reco ect"
co ect();
// client.release();
//System.exit(0);
QQEvent.QQ_RECEIVE_TEMP_SESSION_IM:
SimpleDateFormat tempDate =
SimpleDateFormat(
"MM-dd HH:mm"
impacket = (ReceiveIMPacket) e.getSource();
qqnum = impacket.tempSe ionIM.sender;
immsg =
String(impacket.tempSe ionIM.me age);
+ tempDate.format(
Date(impacket.tempSe ionIM.time))
+ qqnum +
+ immsg);
addFriend(qqnum);
"临时回复"
client.sendIM(qqnum, Util.getBytes(
"对不起:"
+ impacket.tempSe ionIM.nick +
",GK助手暂时还不支持临时会话,请先将我加为好友,然后在正常聊天窗体与我聊天,这样我才能帮助你。:)"
QQEvent.QQ_RECEIVE_NORMAL_IM:
// 收到正常消息?
SimpleDateFormat sdf =
SimpleDateFormat(
"MM-dd HH:mm"
impacket = (ReceiveIMPacket) e.getSource();
qqnum = impacket.normalHeader.sender;
immsg =
String(impacket.normalIM.me ageBytes);
+ sdf.format(
Date(impacket.normalHeader.sendTime))
+ qqnum +
+ immsg);
(impacket.normalIM.replyType != QQ.QQ_IM_AUTO_REPLY)
"好友:"
+ qqnum +
"请求信息:"
+ immsg );
client.sendIM(qqnum, Util.getBytes(immsg));
//if (immsg.trim().equalsIgnoreCase("exit"))
System.out.println(qqnum + "命令你退出");
client.logout();
client.release();
System.exit(0);
QQEvent.QQ_ADDED_BY_OTHERS:
// 事件发生在有人将我加为好友时
QQEvent.QQ_ADDED_BY_OTHERS_EX:
// 事件发生在有人将我加为好友时
"QQ_ADDED_BY_OTHERS_EX"
86: acket = (SystemNotificationPacket) e.getSource();
qqnum = acket.from;
msg(qqnum +
"把我加为了好友?"
client.sendIM(qqnum, Util.getBytes(
"hello."
QQEvent.QQ_REQUEST_ADD_ME:
// 事件发生在有人请求加我为好友?
QQEvent.QQ_REQUEST_ADD_ME_EX:
// 事件发生在有人请求加我为好友?
"QQ_REQUEST_ADD_ME_EX"
94: acket = (SystemNotificationPacket) e.getSource();
qqnum = acket.from;
msg(qqnum +
"想加我为好友"
// 1675103
client.a roveAddMe(qqnum);
addFriend(qqnum);
QQEvent.QQ_ADD_FRIEND_NEED_AUTH:
AddFriendExReplyPacket packet = (AddFriendExReplyPacket)e.getSource();
qqnum = packet.friendQQ;
sendAddFriendAuth(qqnum);
QQEvent.QQ_REQUEST_ADD_OTHER_APPROVED:
// 事件发生在有人请求加我为好友时,我同意并且加他为好友
"QQ_REQUEST_ADD_OTHER_APPROVED"
QQEvent.QQ_REQUEST_ADD_OTHER_APPROVED_AND_ADD:
// 事件发生在有人请求加我为好友时,我同意并且加他为好友
"QQ_REQUEST_ADD_OTHER_APPROVED_AND_ADD"
QQEvent.QQ_REQUEST_ADD_OTHER_REJECTED:
// 事件发生在我请求加一个人,那个人拒绝?
112: acket = (SystemNotificationPacket) e.getSource();
msg( acket.from
"拒绝加我为好友?理由为:"
+ (( acket.me age ==
|| acket.me age
.equals(
: acket.me age));
QQEvent.QQ_KICKED_OUT_BY_SYSTEM:
"QQ在别处登录了,重新登录."
co ect();
default
msg(e.type);
大家看到了LumaQQ里面的事件处理看起来似乎比较原始了一点。但是没关系,它是确实可用的。LumaQQ里面支持的QQ事件协议都在QQEvent中已经有定义了,同时不同的事件,它的事件参数e.getSource()都是不同类型的对象。比如接收到正常消息,它的事件枚举是QQEvent.QQ_RECEIVE_NORMAL_IM,e.getSource()的类型是ReceiveIMPacket。你把这个对象转换成ReceiveIMPacket类型后,就可以得知是谁发送的什么样的消息了。这时候你就可以调用client.sendIM方法来回复消息了。至于回复什么,就是你的机器人要做的事件了,它里可以调用WebService,也可以把业务逻辑直接写在这边。
还有就是断点重连,LumaQQ已经可以保证长时间在线了。但是我们也要有断线重连的功能,这个在例子中也已经有了。还有其它的事件和接口我就不详细介绍了,因为我个人对J***A的了解也不够多。下面再来介绍一下Ecli e的打包吧,这也是一个比较麻烦的地方,没有同事的帮忙我也是一时半会儿也搞不定。
编译,打包部分
同事给我的是装有ObjectWeb Lomboz插件的ecli e,我还必须要说明一下,我的ecli e目录是在:D:\Program Files\ecplise ,因为它有可能影响到一些包的引用和编译。它的启动界面是这样的:
图一:
大家下载完附件的示例代码后,在文件菜单下点击"Switch Work ace"选择解压后的目录。就可以打开解决方案了(工作空间),里面会有三个工程:LumaQQ是QQ协议工程,LumaQQ.net 是LumaQQ负责网络连接部分的工程代码,robot是QQ机器人工程。如果你要在ecli e里面运行或调试机器人,点击QQRobot.java右键在菜单中选择RunAs或DebugAs Java A lcation就可以运行或调试了:
图二:
更多的调试技巧我就不多介绍了。下面来介绍打包吧。ecli e要打包成控制台程序那也不是一件容易的事情。要先将这个解决方案导出成jar包:File --- Export 选择Java目录下的JAR File:
图三:
把三个工程都选择起来,选择包存放的路径和包的文件名:
图四:
一路Next或者直接Finish,可能是弹出警告提示,看不懂也不用管它。转到你刚才包的保存路径,正常情况下,你可以看到你刚才保存的文件名.jar这么一个文件。接下来的工作就是把这个jar打包成exe控制台程序了。这还得借助于另一个工具的帮忙,我使用的是exe4j,你从网络上去下载就可以了。不过它是共享软件,非注册版本打包的exe在运行前会弹出一个提示,告诉你是这个exe是用什么打包的。宣传一下,有点讨厌。
打包exe,需要创建exe4j的工程文件。还有一个麻烦的就是要指定它所引用的所有第三方包的路径,而且设置输出路径,版本,运行环境等等这么信息。为了方便起见,我也把这个文件放在附件的示例中了。***了exe4j后就可以打开这个文件了,打开了点击Finish就在编译了。
图五:exe4j工程文件 图六:引用的第三方包
图七:编译中
经过这一系列的步骤后,你所得到的exe文件,就是一个可用的控制台程序了。这时候除了JRE外,不需要其它的插件的支持了。
写在最后
做为一个.NET平台的开发人员,以上的步骤对我们来说确实是太过于烦杂了。在寒冬季节我写这样的一篇文章都快要满头大汗了,我相信各位看官如果能坚持看到这里那么你一定是非常有耐力了。但是没有办法,我们需要忍受。如果有时间,有精力,我还是很愿意以LumaQQ为样本,开发一个开源的QQ开发包,这样大家就不用再这么麻烦了。
PS:以上的代码开发的QQ机器人基本上可以保持7 * 24 在线服务。
阿不 http://hjf1223.c logs.com
绿色通道:
posted on 2008-01-22 19:41
阅读(8912)
2008-01-22 19:52
学习了,晚上测试一下
  2008-01-22 19:54 和C#有啥关系。只看到LZ说J***A了
  2008-01-22 20:00
不错,和我用同一个模板。
  2008-01-22 20:11 强烈建议楼主开发.net开发包!!
  2008-01-22 23:27 好东西啊。晚上测试下能不能用
  2008-01-22 23:36 支持楼主把它弄成.net类库
  2008-01-23 02:32 为啥lumaqq不能在osx10.3上面跑呢,搞得我都不能聊天
2008-01-23 08:36 @Solog
这篇文章说的就是J***A
2008-01-23 08:36 @偶卖糕的
这个不清楚喔,你要去问Luma了
  2008-01-23 08:57 哦,java,据说很恐怖的东东。
等把它翻译成.net,呵呵。
  2008-01-23 09:03 不错,晚上回去试试。
机器人还是挺有用的,尤其QQ在国内还是非常普遍的。
  2008-01-23 09:18 不错 先支持下
lumaQQ也得分析协议
TX改他也得改(改的最快的也许就是他那个版本字节协议,不过可以伪装)
不过他的那个JQL还是不错的
目前比较出名的还是pidgin(基于Gtk+)
中文网:
英文:
如果能调他的组件。。。m qq 啥得就全解决了。。。
  2008-01-23 09:24 不过也可以用效率低下的钩子
2008-01-23 09:57 @overred
我也用过pidgin的软件,但是源码看不懂。
  2008-01-23 10:09 @阿不
其实分析他的协议和使用udp发送和接受包才是关键
2008-01-23 11:03 @overred
那是肯定的。
  2008-01-23 11:12 先问一下,有没有“珊瑚虫”的危险
2008-01-23 11:20 @克己复礼
这个不敢保证喔。
得问有关的法律专家了。:(
  2008-01-23 11:22 收藏学习。
将来估计要研究一下。
thanks :)
  2008-01-23 13:15 pidgin其实可以包装嘛,不一定非要看得很懂...
2008-01-23 13:18 @坏人
你的留言怎么删了?我加你怎么没有回音?
你是说对程序本身进行拦截?
  2008-01-23 16:05 很多人疯狂的加了MSN,就找我要机器人的代码- -!
可我又没有,所以赶紧删掉联系方式...
对程序拦截似乎也是个办法,但和直接分析协议,我觉得也没有什么好处,假如升级,也一样得改吧。。。
我说的就是pidgin,他用C++做的,我的意思是假如能把他包装一下,让C#直接可以调用的话,工作量或许会比重新参照LUMAQQ写一个要省事很多,并且一下把N个IM全给实现了,统一的架构,也挺不错,不然搞套机器人,还得DOTMSN跑一边,QQ跑一边,也挺麻烦的呢。
你加我了?恩,大概居然有30多个人加我,全都是要代码的,但我哪来的代码呢,搞得我一上午没消停过。。。后来很无奈,我就干脆全删了。。。不知道有没有删错你。。。
  2008-01-23 16:08 删除虫类似的危险应该是没有的,腾讯当初也提醒过珊瑚虫的作者多次,他不听劝,这个没办法,只能法庭上见了,再加上珊瑚虫捆绑不少东西,又去掉广告,既伤害了腾讯的利益,也损坏了QQ的名声(不少普通用户只以为那些捆绑是QQ干的,却分不清楚是哪个版本的QQ),我们搞这个机器人,只能是帮QQ扩大使用范围,也不会损坏他的利益,更不会实施流氓捆绑行为,先不说法律问题,就商业利益问题,腾讯也犯不着来招惹咱。
2008-01-23 16:12 @坏人
搞pidgin可不是一件容易的事喔。
  2008-01-23 16:34 恩,要转过去,也挺麻烦的,不过包装好了,挺不错。
  2008-01-23 17:33 pidgin中的QQ那部分应该是国内人士做的
包括协议分析等。。。
  2008-01-23 17:40 Good Job!
里面有签名修改事件吗?
  2008-01-23 20:58 C#版的有QQ2005的一个简单实现,登录发送消息,接收消息等基本功能。
  2008-01-23 22:12 @瑞克
不会是夭折的web.qq.com吧?
  2008-01-23 22:23 @overred
不是,基于udp协议的。
  2008-01-24 00:20 @瑞克
在那?瑞克
2008-01-24 10:30 @Hunts.C
好像没有这个事件。
  2008-01-24 13:09 真的非常感谢您的奉献精神,交个朋友怎么样?
  2008-01-24 13:12 我不会java,要是.net的就好了
  2008-01-24 13:19
强烈请求开发一个基于.NET

参考资料

 

随机推荐