跳转到主要内容
在 X 上的每个对象——例如 Tweet、Direct Message、User、List 等——都有一个唯一的 ID。 在平台的早期阶段,这些 ID 的数值足够小,可以按顺序生成。随着时间推移,为了适应增长,ID 从 32 位扩展到 64 位。如今,X 的 ID 是基于时间而非顺序生成的唯一 64 位无符号整数。完整的 ID 由时间戳、工作节点编号和序列号组成。X 开发了名为“Snowflake”的内部服务,用于稳定生成这些 ID(在 X 博客上了解更多)。 像 64 位这样的大整数可能会在使用小于 64 位来表示整数的编程语言中引发问题。以 JavaScript 为例,其中整数精度被限制为 53 位。为了解决这一问题,在 X API(v1/1.1)的最初设计中,ID 会以两种格式返回:既作为整数,也作为字符串。
{"id": 10765432100123456789, "id_str": "10765432100123456789"}
如果你在浏览器的 JavaScript 控制台中运行命令 (10765432100123456789).toString(),结果将是 "10765432100123458000" —— 由于这种转换,64 位整数会丢失精度(这有时被称为“munging”——对一段数据的破坏性更改)。 在 X API 最高至 1.1 的版本中,你应始终使用数字的字符串表示形式以避免精度丢失。 在较新的 API 版本中,所有大整数值默认都以字符串形式表示。
I