From 9c17f501b1a9f5c8eccf13de1de575085af08187 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Sun, 27 Dec 2020 01:59:01 +0800 Subject: [PATCH] update doc. --- docs/slider.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++ global/net.go | 2 +- server/apiAdmin.go | 2 +- 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 docs/slider.md diff --git a/docs/slider.md b/docs/slider.md new file mode 100644 index 0000000..3195e92 --- /dev/null +++ b/docs/slider.md @@ -0,0 +1,74 @@ +# 滑块验证码 + +由于TX最新的限制, 所有协议在陌生设备/IP登录时都有可能被要求通过滑块验证码, 否则将会出现 `当前上网环境异常` 的错误. 目前我们准备了两个临时方案应对该验证码. + +> 如果您有一台运行Windows的PC/Server 并且不会抓包操作, 我们建议直接使用方案B + +## 方案A: 自行抓包 + +由于滑块验证码和QQ本体的协议独立, 我们无法直接处理并提交. 需要在浏览器通过后抓包并获取 `Ticket` 提交. + +该方案为具体的抓包教程, 如果您已经知道如何在浏览器中抓包. 可以略过接下来的文档并直接抓取 `cap_union_new_verify` 的返回值, 提取 `Ticket` 并在命令行提交. + +首先获取滑块验证码的地址, 并在浏览器中打开. 这里以 *Microsoft Edge* 浏览器为例, *Chrome* 同理. + +![image.png](https://i.loli.net/2020/12/27/yXdomOnQ8tkauMe.png) + +首先选择 `1` 并提取链接在浏览器中打开 + +![image.png](https://i.loli.net/2020/12/27/HYhmZv1wARMV7Uq.png) + +![image.png](https://i.loli.net/2020/12/27/otk9Hz7lBCaRFMV.png) + +此时不要滑动验证码, 首先按下 `F12` (键盘右上角退格键上方) 打开 *开发者工具* + +![image.png](https://i.loli.net/2020/12/27/JDioadLPwcKWpt1.png) + +点击 `Network` 选项卡 (在某些浏览器它可能叫做 `网络`) + +![image.png](https://i.loli.net/2020/12/27/qEzTB5jrDZUWSwp.png) + +点开 `Filter` (箭头) 按钮以确定您能看到下面的工具栏, 勾选 `Preserve log`(红框) + +此时可以滑动并通过验证码 + +![image.png](https://i.loli.net/2020/12/27/Id4hxzyDprQuF2G.png) + +回到 *开发者工具*, 我们可以看到已经有了一个请求. + +![image.png](https://i.loli.net/2020/12/27/3C6Y2XVKBRv1z9E.png) + +此时如果有多个请求, 请不要慌张. 看到上面的 `Filter` 没? 此时在 `Filter` 输入框中输入 `cap_union_new`, 就应该只剩一个请求了. + +然后点击该请求. 点开 `Preview` 选项卡 (箭头): + +![image.png](https://i.loli.net/2020/12/27/P1VtxRWpjY8524Z.png) + +此时就能看到一个标准的 `JSON`, 复制 `ticket` 字段并回到 `go-cqhttp` 粘贴. 即可通过滑块验证. + +如果您看到这里还是不会如何操作, 没关系! 我们还准备了方案B. + +## 方案B: 使用专用工具 + +此方案需要您有一台可以操作的 `Windows` 电脑. + +首先下载工具: [蓝奏云](https://wws.lanzous.com/iw1Ejjr4rtg) [Google Drive](https://drive.google.com/file/d/1M6c3-kuD7ziHwl4hq75LcI119yB6HGdI/view?usp=sharing) + +解压并打开工具: + +![image.png](https://i.loli.net/2020/12/27/winG4SkxhgLoNDZ.png) + +打开 `go-cqhttp` 并选择 `2`: + +![image.png](https://i.loli.net/2020/12/27/yXdomOnQ8tkauMe.png) + +复制 `ID` 并前往工具粘贴: + +![image.png](https://i.loli.net/2020/12/27/fIwXx5nN9r8Zbc7.png) + +![image.png](https://i.loli.net/2020/12/27/WZsTCyGwSjc9mb5.png) + +点击 `OK` 并处理滑块, 完成即可登录成功. (OK可能反应稍微慢点, 请不要多次点击) + +![image.png](https://i.loli.net/2020/12/27/UnvAuxreijYzgLC.png) + diff --git a/global/net.go b/global/net.go index c6dc179..5f5bc9b 100644 --- a/global/net.go +++ b/global/net.go @@ -64,7 +64,7 @@ func GetBytes(url string) ([]byte, error) { return body, nil } -func GetSilderTicket(raw, id string) (string, error) { +func GetSliderTicket(raw, id string) (string, error) { var rsp string if err := gout.POST("https://api.shkong.com/gocqhttpapi/task").SetJSON(gout.H{ "id": id, diff --git a/server/apiAdmin.go b/server/apiAdmin.go index 49d673e..6236113 100644 --- a/server/apiAdmin.go +++ b/server/apiAdmin.go @@ -149,7 +149,7 @@ func (s *webServer) Dologin() { } id := utils.RandomStringRange(6, "0123456789") log.Warnf("滑块ID为 %v 请在30S内处理.", id) - ticket, err := global.GetSilderTicket(rsp.VerifyUrl, id) + ticket, err := global.GetSliderTicket(rsp.VerifyUrl, id) if err != nil { log.Warnf("错误: " + err.Error()) os.Exit(0)