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

使用Twitter 1.1搜索API时遭遇403权限错误求助

Twitter 1.1搜索API时遭遇403权限错误求助

Hey,我来帮你拆解下这个403错误的问题,看起来核心是权限不足导致的,给你几个排查和解决的方向:

1. 先搞懂错误的本质

你收到的错误码453已经说得很清楚了:当前你的开发者账号只能访问部分Twitter API v2端点和有限的v1.1端点(比如媒体上传、OAuth相关),而v1.1的搜索API不在这个权限范围内。这大概率是因为Twitter的API权限政策调整,或者你的账号权限在密钥丢失重置后被同步变更了。

2. 检查你的开发者账号产品权限

登录Twitter开发者平台,进入你的项目和对应的应用,找到「产品」标签页:

  • 看看是否有「Standard v1.1 Search API」的权限标识
  • 如果没有,说明你的账号当前层级(比如免费层级)已经不支持这个端点了,需要升级到Basic或者更高的付费层级,或者申请对应的访问权限

3. 考虑切换到API v2的搜索接口

如果暂时不想升级权限,你可以改用Twitter API v2的搜索端点(比如/2/tweets/search/recent),这个在很多免费/基础层级是可以访问的。需要调整你的代码:

  • 确认twitter-api-client是否支持v2接口,如果支持,调用对应的方法(比如this.twitterClient.v2.tweets.searchRecent())
  • 参数也需要调整,比如v2用query代替q,过滤规则的写法也有变化,比如你的#' + param_t + '-filter:retweets要改成#' + param_t + ' -is:retweet

4. 再次核对密钥与应用的关联

虽然你已经找回了密钥,但要确认:

  • 这些密钥所属的应用,是否已经正确关联了所需的产品权限
  • 环境变量里的密钥是否完全正确(比如你代码里的ACESSO_TOKEN_TWITTER是不是少了个C?应该是ACCESS_TOKEN_TWITTER,这种拼写小错误也可能导致权限验证出问题)

针对你代码的小提示

如果坚持用v1.1的搜索API,那必须先搞定权限问题;如果转v2,大概的代码调整方向是这样的(参考):

async getTwitter(@Param('tweet') param_t: string) {
  try {
    const data = await this.twitterClient.v2.tweets.searchRecent({
      query: `#${param_t} -is:retweet`,
      max_results: 100,
      tweet_fields: ['created_at', 'text'] // 根据需要添加字段
    });
    // 处理返回数据
  } catch (err) {
    // 错误处理
  }
}

备注:内容来源于stack exchange,提问作者cortex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 09:18:11