hexsum / Mojo-Webqq

【重要通知:WebQQ将在2019年1月1日停止服务,此项目目前已停止维护,感谢大家四年来的一路陪伴】使用Perl语言(不会没关系)编写的smartqq/webqq客户端框架(非GUI),可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
BSD 2-Clause "Simplified" License
1.73k stars 321 forks source link

一点疑问 #3

Closed mrhoric closed 9 years ago

mrhoric commented 9 years ago

你好 我在看你的这个基于webqq的qq机器人时看到有个智能回复的模块,里面有个可以@群人员的语句,但是我不懂Perl,能不能给我讲讲呢?麻烦了

$input=~s/\@\Q$user_nick\E ?|[[^[]]+]\x01|[[^[]]+]//g;

hexsum commented 9 years ago

这句代码注意是把消息内容中包含“@xxx”或者消息内容中包含的图片或表情等字符串去掉 再将处理后的内容调用智能回复api,因为智能回复的api是不会理解qq里的艾特 或者理解一些特殊的表情的

hexsum commented 9 years ago

不懂perl没关系 或者你有什么样的需求可以先提出来 再考虑用什么样的形式来满足你

mrhoric commented 9 years ago

我是想能让机器人@人,但是webqq上面没有这接口,只能网上满天的找怎么@,但是都没有,看这个有点像,但是还是不是的,webqq真的不能@人么

hexsum commented 9 years ago

基于web的qq,你直接去w.qq.com亲自使用下就知道哪些功能有 哪些功能做不到了 确实不支持客户端的艾特功能

mrhoric commented 9 years ago

w.qq.com上面现在几乎没什么功能了,群管理这些全是靠着找那些老的残留的接口弄的

hexsum commented 9 years ago

群管理 用qun.qq.com是否可以

mrhoric commented 9 years ago

那用的不是同一个cookie了,要重新授权,听说是可以转换cookie,感觉太麻烦了,原来的留的老接口挺好用的,这几天看这些老接口不知道看了多少种语言,抓了多少包。。。

hexsum commented 9 years ago

建议别用什么老接口了,腾讯让你用smartqq 你就只能用smartqq,没有的开放的功能,用老接口指不定哪天就关闭了,如果真希望使用这些功能可以研究下客户端协议,qun.qq.com虽然不同cookie但并不影响什么,想用的话总是可以拿来用 只是稍微绕了一下而已

hexsum commented 9 years ago

@mrhoric 老接口可以批量获取qq号吗

mrhoric commented 9 years ago

你是说把uin转qq号么,没有的

hexsum commented 9 years ago

我现在封装了一套自己对外的发送消息api,但如果通过uin指定发送对象,uin会经常变动 一个个获取uin对应的qq,又要查询很多次,效率也不行,还担心有查询次数限制

mrhoric commented 9 years ago

我是觉得uin这玩意特蛋疼,怎么不直接用qq帐号

mrhoric commented 9 years ago

你api接口用qq号啊,uin转qq让用户自己做,我看github上别人是自己建立个小数据库,转一次就存字典中

hexsum commented 9 years ago

uin每次登陆都可能变动,查询可以做缓存,但下次再登陆就没有意义了

mrhoric commented 9 years ago

对啊,就是做缓存用

gitlsl commented 9 years ago

你好,这个项目有交流群吗? 我是用c#开发程序的, 想怎么接入你这个程序实现机器人功能,好像是用远程api 走 本地http 吗

hexsum commented 9 years ago

可以把qq号发到我邮箱,我加你一下,或者直接来我的在线聊天室:http://irc.perfi.wang/

hexsum commented 9 years ago

@gitlsl v1.4.7版本的Openqq插件支持设置接收消息的上报接口,希望对你有帮助

接收消息上报接口示例:
$client->load("Openqq",data=>{
    listen => [{host=>xxx,port=>xxx}],
    post_api=> 'http://127.0.0.1:3000/post_api',
});

接收到消息后,插件会通过HTTP POST请求的方式将json格式的消息上报到http://127.0.0.1:3000/post_api

connect to 127.0.0.1 port 3000    
POST /post_api

{   "receiver":"小灰",
    "msg_time":"1442542632",
    "content":"测试一下",
    "msg_class":"recv",
    "sender_id":"2372835507",
    "receiver_id":"4072574066",
    "group":"PERL学习交流",
    "group_id":"2617047292",
    "sender":"灰灰",
    "msg_id":"10856",
    "type":"group_message"
}

支持好友消息、群消息、讨论组消息、临时消息的上报
gitlsl commented 9 years ago

@sjdy521 好的 我试试 这程序能在win7 下跑吗 我下载安装了了 Strawberry 然后 运行 makefile , demo 还是跑不起来 好像是说少了 Webqq::Encryption ?

hexsum commented 9 years ago

建议使用cpan或者cpanm在线安装,自动解决依赖问题 另外windows下建议尽量使用cygwin类linux环境使用perl

发自 网易邮箱大师 在2015年09月18日 21:29,gitlsl 写道:

@sjdy521 好的 我试试 这程序能在win7 下跑吗 我下载安装了了 Strawberry 然后 运行 makefile , demo 还是跑不起来 好像是说少了 Webqq::Encryption ?

— Reply to this email directly or view it on GitHub.

hexsum commented 9 years ago

提示少了Webqq::Encryption 模块也可以手动安装下

发自 网易邮箱大师 在2015年09月18日 21:29,gitlsl 写道:

@sjdy521 好的 我试试 这程序能在win7 下跑吗 我下载安装了了 Strawberry 然后 运行 makefile , demo 还是跑不起来 好像是说少了 Webqq::Encryption ?

— Reply to this email directly or view it on GitHub.

hexsum commented 9 years ago

@mrhoric 目前测试发现,登录了smartqq之后,qun.qq.com就不需要再重新登录了,也就是说smartqq的登录cookie是可以共享给qun.qq.com的,大概看了下js代码,主要是skey和pt_uin两个cookie,用这个做群管理还是挺方便的