最近经常有朋友在问,自己囤的或者领取的 Codex 重置卡到底什么时候过期?网页界面上有时候看得并不直观,其实通过官方 API 接口,我们可以非常精准地查询到每张卡的详细信息,包括具体的过期时间和可用次数。

今天就分享一个硬核一点的查询方法,不用去翻网页,直接在你的终端里运行几行命令就能搞定。

Codex auth.json 配置文件结构示意图

读取 ~/.codex/auth.json 文件结构说明

准备工作:获取 Token

首先,你需要有一个已经登录了 Codex 客户端的环境。打开你的终端,直接读取本地的认证配置文件。通常这个文件藏在你的用户目录下,路径是 ~/.codex/auth.json

你需要从这个 JSON 文件里提取出 tokens 字段下的 access_token。这串字符就是你的“钥匙”,用来证明身份。安全提示:提取出来使用即可,千万不要把这串 Token 发到网上或贴给别人,以免账号被盗用。

构造 API 请求

拿到了 Token,接下来就是向服务器发请求了。

终端中使用 curl 发送带 Authorization 请求的命令示例

使用 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_atexpires_at)默认是 UTC 时间(世界标准时间)。对于国内用户来说,直接看 UTC 时间得在脑子里面加 8 个小时,非常容易搞错。

所以建议在解析数据的时候,顺手做一个时间转换。如果你写代码,直接用标准库把 UTC 字符串转成本地时区的时间字符串再输出;如果你用别的工具,也要记得手动换算一下,这样一眼就能看出这张卡到底是哪天过期。

遇到 401 错误怎么办?

有些朋友按步骤操作了,结果服务器返回了一个 401 Unauthorized 状态码。这时候不要慌,这通常是认证出了问题,可以按以下思路排查:

  1. Token 没带对:检查一下请求头,确认 Authorization 字段是不是正确填写了,且格式是 Bearer <token>,中间的空格不能少。
  2. Token 过期或失效:如果你很久没登录了,access_token 可能已经失效了。解决办法很简单,打开 Codex 客户端重新登录一下,让客户端刷新一下 ~/.codex/auth.json 里的 Token,然后再读取新的 Token 尝试请求。

总结

虽然网页端也能看,但通过 API 直接查数据,对于手头权益较多、或者需要自动化管理账号的朋友来说,效率要高出不少。特别是配合本地时间转换逻辑,能有效避免因为时差看错时间导致权益浪费。快去看看你手里的卡还有多少天有效期吧!

标签: none

评论已关闭