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

使用Tweepy获取Twitter数据时遇401授权错误,求技术帮助

解决Tweepy调用X(原Twitter)API时的401授权错误

嘿,作为新手遇到授权问题确实挺闹心的,我帮你梳理几个最常见的排查方向,一步步来搞定这个401错误~

  • 先把密钥的细节抠到位
    你代码里的consumer_key、consumer_secret、access_token、access_secret这四个核心密钥,最容易出问题的就是格式:

    • 看你写的consumer_secret = " XX",这里引号里开头多了个空格!这种多余的空白字符会直接导致授权失败,一定要把密钥里的空格、换行都清掉,确保完全复制X开发者平台上的原始值。
    • 另外要注意密钥是大小写敏感的,别把字母大小写抄错了,也别漏了末尾的特殊符号。
  • 确认API权限和密钥类型匹配

    • 你用的是tweepy.OAuthHandler,这对应OAuth 1.0a授权方式,所以要确保你在X开发者平台生成的是OAuth 1.0a的访问令牌,如果不小心生成了OAuth2的密钥,那这个代码写法就不适用了。
    • 还要检查你的开发者账号是否开通了对应API的访问权限,比如如果是要流式获取推文,得确认账号有权限访问Standard v1.1 API或者v2 API,没权限的话也会返回401。
  • 补全代码并测试基础授权
    你的代码里auth = OAuthHandler(...)后面截断了,完整的授权流程得加上设置令牌的步骤,还可以先做个简单的测试确认授权是否成功:

    import tweepy
    from tweepy import Stream
    from tweepy.streaming import StreamListener
    from tweepy import OAuthHandler
    import json
    
    consumer_key = "XXX"
    consumer_secret = "XX"  # 记得删掉多余空格!
    access_token = "XX"
    access_secret = "XX"
    
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)  # 这步不能少!
    
    # 先测试基础授权,别直接上流式接口
    try:
        api = tweepy.API(auth)
        user = api.verify_credentials()
        print(f"授权成功啦!当前用户:{user.screen_name}")
    except tweepy.TweepError as e:
        print(f"授权失败原因:{e}")
    

    如果你的Tweepy版本太老,可能和新的X API不兼容,建议更新到最新版:pip install --upgrade tweepy

  • 检查开发者账号状态
    最后确认下你的X开发者账号是否正常:有没有完成邮箱验证?如果用的是付费API套餐,有没有欠费?账号有没有被限制访问API?这些情况都会导致401错误。

小建议:先通过verify_credentials()这种简单接口确认授权没问题,再去调试流式监听的代码,这样更容易定位问题哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:20:39