• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LonelyM
V2EX  ›  程序员

[亲测有效] Codex 赠送的重置机会,有效期查询方法

  •  
  •   LonelyM · 3h 42m ago · 605 views

    🚀教大家一个方法,查询 Codex 赠送的重置机会什么时候到期!

    方法很简单,将下面的提示词发送给 Codex 即可。

    ========🔥提示词==========

    请使用本机 Codex 凭证查一下 rate-limit reset credits:

    读取 ~/.codex/auth.json 里的 tokens.access_token ,请求接口: https://chatgpt.com/backend-api/wham/rate-limit-reset-credits

    要求:

    1. 不要打印 access_token 、refresh_token 、cookie 或完整唯一 ID
    2. 只汇总 available_count 、每个 credit 的 status/title/granted_at/expires_at
    3. 把 granted_at/expires_at 从 UTC 转成本地时间
    4. 如果状态码返回 401 ,说明是凭证失效或没带对 Authorization header

    ========🔥提示词==========

    4 replies    2026-06-29 15:09:59 +08:00
    plmsuper8
        1
    plmsuper8  
       3h 19m ago
    或者这个:
    ```
    python3 - <<'PY'
    import json
    import os
    import urllib.request
    from datetime import datetime, timezone

    AUTH_PATH = os.path.expanduser("~/.codex/auth.json")
    URL = "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits"

    def to_local_time(value):
    if not value:
    return None
    try:
    if isinstance(value, (int, float)):
    # 兼容秒或毫秒时间戳
    if value > 10_000_000_000:
    value = value / 1000
    dt = datetime.fromtimestamp(value, tz=timezone.utc)
    else:
    s = str(value).replace("Z", "+00:00")
    dt = datetime.fromisoformat(s)
    if dt.tzinfo is None:
    dt = dt.replace(tzinfo=timezone.utc)
    return dt.astimezone().strftime("%Y-%m-%d %H:%M:%S %Z")
    except Exception:
    return value

    with open(AUTH_PATH, "r", encoding="utf-8") as f:
    auth = json.load(f)

    token = auth.get("tokens", {}).get("access_token")
    if not token:
    raise SystemExit("未找到 tokens.access_token")

    req = urllib.request.Request(
    URL,
    headers={
    "Authorization": f"Bearer {token}",
    "Accept": "application/json",
    },
    method="GET",
    )

    try:
    with urllib.request.urlopen(req, timeout=20) as resp:
    status = resp.status
    body = resp.read().decode("utf-8")
    except urllib.error.HTTPError as e:
    status = e.code
    body = e.read().decode("utf-8", errors="replace")

    if status == 401:
    print("HTTP 401:凭证失效,或请求没有带正确的 Authorization header")
    raise SystemExit(1)

    if status < 200 or status >= 300:
    print(f"HTTP {status}")
    print("请求失败;未输出敏感信息。")
    raise SystemExit(1)

    data = json.loads(body)

    available_count = data.get("available_count")
    credits = data.get("credits", [])

    print("available_count:", available_count)
    print()

    for i, c in enumerate(credits, 1):
    print(f"credit #{i}")
    print(" status:", c.get("status"))
    print(" title:", c.get("title"))
    print(" granted_at:", to_local_time(c.get("granted_at")))
    print(" expires_at:", to_local_time(c.get("expires_at")))
    PY
    ```
    unusualcat
        2
    unusualcat  
       3h 9m ago
    试了,确实可以查询到每个 reset 的获得时间和过期时间。
    zls3201
        3
    zls3201  
       2h 16m ago via iPad
    cpa 不是自带么 搞这么麻烦
    littlefishzzz
        4
    littlefishzzz  
       3 mins ago
    @zls3201 问一下 codex 不是就行么 cpa 搞这么麻烦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5463 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:13 · PVG 15:13 · LAX 00:13 · JFK 03:13
    ♥ Do have faith in what you're doing.