手把手教你查 Codex 重置卡有效期(附 Token 获取与 401 报错解决)
最近经常有朋友在问,自己囤的或者领取的 Codex 重置卡到底什么时候过期?网页界面上有时候看得并不直观,其实通过官方 API 接口,我们可以非常精准地查询到每张卡的详细信息,包括具体的过期时间和可用次数。
今天就分享一个硬核一点的查询方法,不用去翻网页,直接在你的终端里运行几行命令就能搞定。
读取 ~/.codex/auth.json 文件结构说明
准备工作:获取 Token
首先,你需要有一个已经登录了 Codex 客户端的环境。打开你的终端,直接读取本地的认证配置文件。通常这个文件藏在你的用户目录下,路径是 ~/.codex/auth.json。
你需要从这个 JSON 文件里提取出 tokens 字段下的 access_token。这串字符就是你的“钥匙”,用来证明身份。安全提示:提取出来使用即可,千万不要把这串 Token 发到网上或贴给别人,以免账号被盗用。
构造 API 请求
拿到了 Token,接下来就是向服务器发请求了。
使用 curl 发送 API 请求的命令示例
Codex 查询重置卡剩余权益的接口是:
https://chatgpt.com/backend-api/wham/rate-limit-reset-credits
我们需要发送一个 GET 请求,关键在于 HTTP Headers 的设置。你要在请求头里带上 Authorization 字段,值通常是 Bearer 加上你刚才拿到的 access_token。大概格式如下:
Authorization: Bearer 你的AccessToken
如果你习惯用命令行工具,用 curl 会非常快,也可以自己写一段 Python 脚本来跑,效果是一样的。
解析返回的 JSON 数据
服务器返回的结果是一个 JSON 格式的数据包。里面最重要的信息都在 credits 列表里,主要关注这几个字段:
available_count:剩余可用的次数。status:当前权益的状态。title:权益的名称(比如重置卡相关的描述)。granted_at:权益获取的时间。expires_at:权益过期的时间。
小细节:UTC 时间转本地时间
这里有个小坑,API 返回的时间戳(granted_at 和 expires_at)默认是 UTC 时间(世界标准时间)。对于国内用户来说,直接看 UTC 时间得在脑子里面加 8 个小时,非常容易搞错。
所以建议在解析数据的时候,顺手做一个时间转换。如果你写代码,直接用标准库把 UTC 字符串转成本地时区的时间字符串再输出;如果你用别的工具,也要记得手动换算一下,这样一眼就能看出这张卡到底是哪天过期。
遇到 401 错误怎么办?
有些朋友按步骤操作了,结果服务器返回了一个 401 Unauthorized 状态码。这时候不要慌,这通常是认证出了问题,可以按以下思路排查:
- Token 没带对:检查一下请求头,确认
Authorization字段是不是正确填写了,且格式是Bearer <token>,中间的空格不能少。 - Token 过期或失效:如果你很久没登录了,
access_token可能已经失效了。解决办法很简单,打开 Codex 客户端重新登录一下,让客户端刷新一下~/.codex/auth.json里的 Token,然后再读取新的 Token 尝试请求。
总结
虽然网页端也能看,但通过 API 直接查数据,对于手头权益较多、或者需要自动化管理账号的朋友来说,效率要高出不少。特别是配合本地时间转换逻辑,能有效避免因为时差看错时间导致权益浪费。快去看看你手里的卡还有多少天有效期吧!
评论已关闭