跳转至

账号密码登录提取凭据

这个 recipe 展示如何用 OOPZ 账号密码登录工具获取 SDK 所需凭据,并把凭据放入环境变量。

命令行

首次使用前安装 Chromium:

python -m playwright install chromium

Windows PowerShell:

$env:OOPZ_LOGIN_PHONE = "你的 OOPZ 登录账号"
oopz-login --phone $env:OOPZ_LOGIN_PHONE --print-env powershell

Linux / macOS:

export OOPZ_LOGIN_PHONE="你的 OOPZ 登录账号"
oopz-login --phone "$OOPZ_LOGIN_PHONE" --print-env bash

登录成功后,命令会输出 OOPZ_DEVICE_IDOOPZ_PERSON_UIDOOPZ_JWT_TOKENOOPZ_PRIVATE_KEY 的设置命令。把输出复制到本地 shell 执行后,就可以运行 SDK 示例。

如果登录过程需要人工验证,增加 --headful

oopz-login --phone $env:OOPZ_LOGIN_PHONE --headful --print-env powershell

使用提取后的环境变量

复制命令行输出的环境变量后,可以直接从这些底层凭据创建配置:

from oopz_sdk import OopzConfig


config = OopzConfig.from_env()
print(config.person_uid)

这段代码默认读取 OOPZ_DEVICE_IDOOPZ_PERSON_UIDOOPZ_JWT_TOKENOOPZ_PRIVATE_KEY

代码中直接登录

如果不想先运行命令行工具,也可以在代码中直接读取账号密码环境变量并登录:

import asyncio

from oopz_sdk import OopzConfig


async def main() -> None:
    config = await OopzConfig.from_env_async()
    print(config.person_uid)


asyncio.run(main())

这段代码默认读取 OOPZ_LOGIN_PHONEOOPZ_LOGIN_PASSWORD。需要人工验证时设置 OOPZ_LOGIN_HEADFUL=1(也接受 true / yes / on),也可以在调用时显式传 headless=False

不要把输出的真实 token、私钥或任何保存了这些内容的文件提交到仓库。