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

使用tweepy Paginator调用get_retweeters报401 Unauthorized如何解决

Tweepy调用get_retweeters接口返回401 Unauthorized排查解决

401为鉴权类错误,针对拉取推文转发用户的场景,按以下优先级排查即可:

  • 确认API权限等级匹配
    Twitter API v2的get_retweeters接口未对免费层开发者开放,免费账号调用会直接返回401。需要先确认你的开发者账号订阅了Basic及以上的API套餐,且当前调用使用的App已经绑定在对应有权限的开发者项目下。
  • 校验Client初始化的鉴权参数
    该接口不支持仅使用Bearer Token的应用鉴权,必须配置完整的OAuth 1.0a用户上下文凭证,缺项、参数值填错、复制时带多余空格都会触发401。正确初始化参考:
    import tweepy
    
    client = tweepy.Client(
        consumer_key="从开发者后台复制的API Key",
        consumer_secret="从开发者后台复制的API Key Secret",
        access_token="从开发者后台复制的Access Token",
        access_token_secret="从开发者后台复制的Access Token Secret",
        bearer_token="从开发者后台复制的Bearer Token",
        wait_on_rate_limit=True
    )
    
  • 校验目标推文的可访问性
    如果传入的推文ID对应内容已被删除、发布账号设为私密、推文被平台限制可见,即使鉴权参数正确也会返回401。测试阶段可以先用一个公开可访问的普通推文ID做调用验证,排除目标资源本身的访问限制问题。
  • 校验运行环境时间同步
    Twitter的OAuth签名校验会校验请求时间,如果运行代码的设备本地时间和标准UTC时间偏差超过5分钟,签名校验会直接失败返回401。本地运行先同步系统时间,服务器部署配置NTP时间同步即可修复。

你写的分页拉取逻辑本身没有语法问题,鉴权和权限问题修复后即可正常拉取数据。调试阶段可以加异常捕获打印详细响应信息,方便快速定位问题:

try:
    for user in tweepy.Paginator(client.get_retweeters, id=df2['Tweet Id'][0], max_results=100).flatten(limit=1000):
        print(user)
except tweepy.TweepyException as e:
    print(f"错误信息: {str(e)}")
    if hasattr(e, 'response'):
        print(f"错误详情: {e.response.text}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:24:20