碰到一个需求,检测一批网页上一批 QQ 临时对话是否正常工作。
正常情况下,点击 QQ交谈 之后便会唤起用户电脑上的 QQ 应用,并打开临时对话窗口,随着 腾讯企点 的上线,普通 QQ 基本无法再使用该功能,点击便会遇到如下情况,或者提示 加好友后才能开始聊天。
发起 QQ 临时对话有两种形式:
tencent://message/?uin=qq号&Site=qq&Menu=yes
https://wpa.qq.com/msgrd?v=3&uin=qq号&site=qq&menu=yes&jumpflag=1
第一种通过 QQ 的客户端协议进行对话,若客服 QQ 不支持临时对话,则自动调用浏览器弹出如上页面,监控网络请求也是一种方法,但过于繁琐。
第二种通过QQ的服务器「原 web 端 qq」进行会话,由于 web端qq 早已下线,因此最终仍是重定向到客户端协议唤起 qq。
不过,服务器会额外进行一次判断:
- 若临时会话可能则重定向至客户端协议唤起 QQ
- 若临时会话不可能则重定向至错误页面
基于此,我们便可以判断客服 qq 临时会话是否有效:
-
正常
-
需要加好友
-
临时会话权限被关闭