hexsum / Mojo-Webqq

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

QQ群的uid经常出现undef的情况 #216

Closed houtaijun closed 6 years ago

houtaijun commented 6 years ago

Object(Mojo::Webqq::Group::Member) { 'country' => '中国', 'uid' => undef, 'name' => 'Heartbeat', 'sex' => 'female', 'state' => 'offline', 'client_type' => 'unknown', 'city' => '西宁', 'card' => '管理大四师卉', 'id' => '3457326133', 'province' => '青海' }

hexsum commented 6 years ago

如果一个群里的群成员重名了,就无法获取到重名的两个人的uid了。这个是当前的局限 确认下是不是这种情况,你这个打印的信息是在什么情况下打印的,代码可以发来参考下?

hexsum commented 6 years ago

程序当前获取uid的方式并不完美,如果存在昵称相同的好友,或者一个群里存在昵称相同的群成员,这相同昵称的好友或者群成员都无法获取到uid 所以,如果你获取uid的目的只是为了调用api接口发送消息,那么直接使用昵称来发送更为简单,不需要账号密码登录,也不需要获取uid,比如: http://127.0.0.1:5000/openqq/send_group_message?name=test&content=hello(中文要做urlencode) 发送消息接口详见:https://github.com/sjdy521/Mojo-Webqq/blob/master/API.md 唯一的差别就是uid不会变化,但是昵称可能会被用户修改,但是一半修改昵称的频率也不会很高

houtaijun commented 6 years ago

我是在监听消息那里打印的消息,群里有2000来个人,好友和群成员不存在昵称相同的

hexsum commented 6 years ago

我再观察下,暂时没办法重现这个情况