You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取OAuth 2.0 Bearer Token成功但调用Twitter首页时间线返回220错误

标准Twitter API(X API v1.1)的OAuth 2.0支持说明

首先直接给你明确结论:标准Twitter API(现在叫X API v1.1)的用户上下文接口(比如Home Timeline)不支持OAuth 2.0 Bearer Token,这类接口必须使用OAuth 1.0a授权。下面给你拆解细节:

1. OAuth 2.0 Bearer Token的适用范围

Twitter的OAuth 2.0 Bearer Token仅适用于应用-only的请求场景——也就是不需要访问用户私人数据的公开操作,比如:

  • 搜索公开推文
  • 获取公开用户的基本资料
  • 查询公开的话题趋势

这种令牌是基于应用本身的身份生成的,没有绑定任何用户的权限上下文,所以无法访问需要用户授权的私有资源(比如你的Home Timeline、用户的私人推文列表)。

2. 你遇到220错误的原因

Home Timeline接口需要读取用户的个性化时间线,属于用户上下文敏感的请求,必须通过OAuth 1.0a完成用户授权,获取带有用户权限的access token和access token secret,并且在请求时完成OAuth 1.0a的签名验证(而不是简单的Authorization: Bearer <token>请求头)。

你用OAuth 2.0的Bearer Token调用这个接口,自然会被判定为权限不足,返回220错误。

3. 文档混乱的原因

早期Twitter的文档确实存在部分表述模糊的情况:有些文档提到了OAuth 2.0支持,但那仅针对应用-only场景;而用户上下文接口的文档一直明确要求使用OAuth 1.0a,只是不同文档板块的更新节奏不一致,导致了你看到的矛盾信息。现在X(原Twitter)的官方文档已经明确区分了两种授权的适用场景,建议以最新的接口文档为准。

4. 解决办法

如果要正常调用Home Timeline接口,你需要切换到OAuth 1.0a的授权流程:

  • 引导用户完成授权,获取用户级别的access token和access token secret
  • 在请求时,按照OAuth 1.0a的规范生成签名,并将签名信息放入请求头中

内容的提问来源于stack exchange,提问作者Sampath Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:50:49