嘉文钱
26-06-19 07:06 微博认证:AI博主

Codex赠送的重置机会,要在获得日期起30天内用掉,但界面上没有显示具体的日期,也容易忘掉,所以我让codex帮写了一段话:
# 把下面这段发给Codex,就可以查询重置机会的过期时间

——

## 查询 Codex reset credits 过期时间

用途:查看 Codex 里可用的 reset credits 分别什么时候过期。

前提:
- 已安装并登录 Codex Desktop / Codex CLI
- 本机存在 `~/.codex/auth.json`
- 只在自己电脑本地运行
- 不要把 `~/.codex/auth.json` 或 token 发给任何人

把下面内容保存为 `codex_reset_expiry.py`:

```python
#!/usr/bin/env python3
import json
import urllib.request
from pathlib import Path
from datetime import datetime

auth_path = Path("~/.codex/auth.json").expanduser()

if not auth_path.exists():
raise SystemExit("No ~/.codex/auth.json found. Please sign in to Codex first.")

auth = json.loads(auth_path.read_text())
tokens = auth.get("tokens") or {}

token = tokens.get("access_token")
account = tokens.get("account_id") or ""

if not token:
raise SystemExit("No access_token found. Please sign in to Codex first.")

req = urllib.request.Request(
"http://t.cn/AXa1Q7Vx",
headers={
"Authorization": f"Bearer {token}",
"ChatGPT-Account-ID": account,
"OpenAI-Beta": "codex-1",
"originator": "Codex Desktop",
"User-Agent": "Codex Desktop",
"Accept": "application/json",
},
)

try:
data = json.loads(urllib.request.urlopen(req, timeout=30).read().decode())
except Exception as e:
raise SystemExit(f"Request failed: {e}")

credits = data.get("credits", [])
available = [c for c in credits if c.get("status") == "available"]

print(f"{data.get('available_count', len(available))} resets available")

for i, credit in enumerate(available, 1):
expires_at = credit.get("expires_at")
if not expires_at:
print(f"Reset {i} expires: unknown")
continue

dt = datetime.fromisoformat(expires_at.replace("Z", "+00:00")).astimezone()
print(f"Reset {i} expires: {dt.strftime('%b %d, %Y %I:%M %p')}")
```

运行:

```bash
python3 codex_reset_expiry.py
```

示例输出:

```text
4 resets available
Reset 1 expires: Jul 12, 2026 10:20 AM
Reset 2 expires: Jul 12, 2026 10:48 AM
Reset 3 expires: Jul 12, 2026 11:18 AM
Reset 4 expires: Jul 18, 2026 08:30 AM
```

注意:
- 不要分享 `~/.codex/auth.json`
- 不要把 token 贴给任何人
- 这个接口是 ChatGPT/Codex 内部接口,不是公开 API,以后可能变化或失效

发布于 广东