Skip to content
foyou edited this page Dec 2, 2022 · 8 revisions

扫描二维码

2022年03月08日 新增 https://github.com/foyoux/aligo/releases/tag/v3.0.0

这是默认的登录方式

from aligo import Aligo

ali = Aligo()

refresh_token

如果不方便扫描二维码, 可以使用这种方式

from aligo import Aligo

# 特别注意:登录完后请在下次使用之前,删除此参数,因为理论上 refresh_token 只能用一次。
# 如果不删除会导致,第二次使用无效的 refresh_token 登录,登录失败,并且可能覆盖第一次录成功的信息
ali = Aligo(refresh_token='<refresh_token>')

获取 refresh_token

image-20211015115226932

多账户支持

from aligo import Aligo, Auth

ali1 = Aligo(name='帐户1')

ali2 = Aligo(name='帐户2')

补充说明

  1. 登录信息存放在 <用户家目录>/.aligo/<name>.json

  2. Aligoname 参数默认为 "aligo"

  3. 如果你只扫码登录一个地方, 有效期会比较长, 可能一个月, 但是如果你刚刚登录 aligo, 之后又跑到浏览器扫码登录, 那 aligo 中的登录信息可能很快失效. 目前似乎随意登录,有效期超长

  4. 登录信息失效后, 会继续弹出二维码扫描登录

  5. 如果你在类Unix系统中使用, 可能二维码显示不完全, 或者其他原因导致无法使用扫描二维码的方式登录, 那你有两种方式解决这个问题

    1. 使用 refresh_token

    2. 自定义显示二维码的方法

      import tempfile
      
      import qrcode
      import yagmail
      from aligo import Aligo, Auth
      
      
      def show(qr_link: str):
          """自定义显示二维码"""
          # 1.将二维码链接转为图片
          qr_img = qrcode.make(qr_link)
          png_file = tempfile.mktemp('.png')
          qr_img.save(png_file)
      
          # 2.将二维码发送到自己的(手机)邮箱, 这里以QQ邮箱为例
          # 使用 yagmail 库发送邮件, `pip install yagmail[all]`
          yag = yagmail.SMTP('<你的邮箱地址>', '授权码/密码', 'smtp.qq.com', 465)
          yag.send('<目标邮箱>', 'aligo扫码登录', qr_link, attachments=[png_file])
      
      
      ali = Aligo(name='xxx', show=show)