slince / smartqq

:penguin: SmartQQ (原 WebQQ ) API 的 PHP 语言实现,提供了一系列更优雅可读性更高的API
MIT License
82 stars 27 forks source link

接口很棒,谈一下使用感受。 #17

Open mlsjla opened 6 years ago

mlsjla commented 6 years ago

代码封装很优雅,很规范,可读性很高。 配合一些缓存机制,可以大大提升性能。 轮询消息的时候不是很合理,有点粗暴,使用的时候好好调整一下。

代码写得很好在于,我基于swoole运行,基本上没报错啥的,稍微改了一下可以运行很顺畅。

接口比较坑的地方在于(这个是qq协议坑) 1、无法获取到用户实际qq号,里面提到的一个接口,我这边实际上已经访问不了了。qq好友来信,uin都是可能会变化的。 2、无法获取用户实际群号,所有群code或者之类都是一个来信号,是会变化的。 3、如果想用来做一个群签到管理, 估计难度大,因为没有一个唯一标识符是不变的,而昵称是容易冲突的。除非用备注,好友备注和群备注,或者群名片,是可以对用户唯一标识符就行区分。

以上问题如果可以解决,希望作者能指点一下。

分享一个自动登录机制的代码,这个可以通过password进行登录。依赖的实际上就是几个chromedriver之类的环境

自动登录会自动打开chrome浏览器,模拟用户输入密码之类。代码参考了java的一个轮子的一个插件。

` /**

slince commented 6 years ago

实际上是打开qq空间,让用户自己填写内容是吗?

slince commented 6 years ago

至于轮询消息,你也看到了,库里并没有做while true的循环,其实是想让用户自己做循环处理;比如轮询多久sleep一次之类的;

目前的pool message 请求只是帮助发送一次http请求;

mlsjla commented 6 years ago

@slince

账号密码登录这个方法, 实际上是前端测试经常用的,用php来控制浏览器进行登录,然后获取cookie和登录凭证用于系统登录。

先登录http://m.qzone.com, 可以通过qq号和密码登录 然后再范文w.qq.com 发现自动登录了。

我是参考了这个 https://github.com/pandolia/qqbot/blob/master/qqbot/plugins/passwordlogin.py

来开发的,有python版本,facebook开源了php的chromedriver,所以我就参考写了下,测试了运行正常。

mlsjla commented 6 years ago

可以简单理解。 就是php通过chromedriver驱动,来控制浏览器 第一步: 打开chrome浏览器 第二步: 然后控制浏览器访问http://m.qzone.com 第三步: 然后控制模拟浏览器键盘鼠标输入qq账号和密码。 第四步: 然后控制浏览器访问w.qq.com 发现这时候qq已经登录了。 第五步: 然后获取cookie和其他登录凭证 $vfWebQQ $pSessionId $ptWebQQ

有了上面的东西,就可以直接用于程序本身进行登录了。

slince commented 6 years ago

ok, 后面我试试

2488583886 commented 6 years ago

作者在吗,我这个会断掉!

slince commented 6 years ago

@2488583886 ?? 什么意思