账号密码登录与UpSession

class qqqr.up.UpWebLogin(client, uin, pwd, h5=True, app=None, proxy=None, info=None, fake_ip=None)

在 0.13.0.dev1 版本发生变更: TeaEncoder 是唯一的 PasswdEncoderNodeEncoder 已被移除。

async new()

创建一个 UpWebSession。这将触发对 xlogin URL 的 GET 请求。

抛出:

aiohttp.ClientResponseError -- 如果响应状态 != 200

返回类型:

UpWebSession

返回:

a UP login session

async check(sess)

将调用 Qzone 的 check API,获取此登录是否需要验证码、短信验证等的结果。

参数:

sess (UpWebSession) -- 从 new() 获取的 session。

async send_sms_code(sess)

发送验证短信(获取动态码)

参数:

sess (UpWebSession) -- 要发送短信验证码的账号密码登录 session

async try_login(sess)

检查当前 session 是否满足登录条件。接收一个 session 对象并返回此次尝试的响应。

参数:

sess (UpWebSession) -- 存储 session 信息

返回类型:

LoginResp

返回:

登录响应

async login()

执行完整的账号密码登录流程。

  1. 创建一个新的 UpWebSession

  2. 调用 check API 确定登录要求

  3. 如果需要验证码,通过 UpWebSession.pass_vc() 处理

  4. 循环 try_login() 直到认证成功或出错

  5. 如果需要短信验证,触发 sms_code_input 钩子

返回:

登录 cookie 字典

抛出:

TencentLoginError -- 如果任何步骤登录失败

sms_code_input

This emitter is triggered when SMS verify code is needed during login.

class qqqr.up.UpH5Login(client, uin, pwd, h5=True, app=None, proxy=None, info=None, fake_ip=None)

使用移动端 H5 端点的账号密码登录。

使用 ui.ptlogin2.qq.com 替代 ssl.ptlogin2.qq.com,并带有 H5 特定的参数。

property login_page_url

使用 H5 特定参数构建 H5 登录页面 URL。

async check(sess)

调用 H5 的 check API 确定登录要求。

参数:

sess (UpWebSession) -- 从 new() 获取的 session

class qqqr.up.web.UpWebSession(login_sig, *, create_time=None)

账号密码登录的 session 状态。

存储验证结果、check 响应、短信票据和登录历史。属性暴露当前验证码和登录请求所需的 session id。

set_check_result(check)

存储 check API 响应并更新 session 状态。

property pastcode: int

上次登录尝试的响应码,如果没有则为 0。

property sid: str

来自 check 响应的登录 session id。

property code

当前验证码(verify 结果优先于 check 结果)。

property verifycode

当前验证字符串(verify 结果优先于 check 结果)。

property verifysession

当前验证 session(verify 结果优先于 check 结果)。

async pass_vc(solver)

pass_vc 函数用于通过 Tcaptcha 验证。当 try_login() 返回 StatusCode.NeedCaptcha 码时调用。

参数:

solver (Captcha) -- Captcha 对象

抛出:
返回类型:

None