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

Python Tweepy调用Twitter API遇401未授权错误求助

解决Twitter API 401未授权错误的方案

你的代码核心错误

当前认证代码存在两个直接导致401错误的问题:

  • OAuthHandler参数错误:你传入的是字符串"API_key"和"API_secret",而非读取到的变量api_key和api_secret
  • set_access_token使用错误:这是一个方法,你写成了赋值语句auth.set_access_token = (...),正确用法是调用方法auth.set_access_token(...)

修正后的OAuth1.0a认证代码(用于API v1.1)

import tweepy 
import configparser
import os

# 读取配置文件
file_name = "config.txt"
file_path = os.path.join(os.getcwd(), file_name)

config = configparser.ConfigParser()
config.read(file_path)

# 读取密钥(确保config.txt格式正确)
api_key = config["twitter"]["API_key"]
api_secret = config["twitter"]["API_secret"]
access_token = config["twitter"]["Access_token"]
access_token_secret = config["twitter"]["Access_token_secret"]

# 正确的认证流程
auth = tweepy.OAuthHandler(api_key, api_secret)  # 传入变量而非字符串
auth.set_access_token(access_token, access_token_secret)  # 调用方法而非赋值

api = tweepy.API(auth)

# 验证认证是否成功
try:
    public_tweets = api.home_timeline()
    print("认证成功!获取到时间线内容:")
    for tweet in public_tweets[:3]:
        print(tweet.text)
except tweepy.errors.Unauthorized:
    print("仍未授权,请检查密钥是否正确,或账号权限是否开启")

学术账号推荐使用Bearer Token(API v2)

你的目标是拉取历史话题标签,Twitter学术研究账号更适配API v2的全量搜索接口,此时需用Bearer Token进行App-only认证,无需用户授权令牌:

步骤1:确保config.txt格式正确

你的配置文件需包含Bearer Token,格式如下:

[twitter]
API_key=你的API密钥
API_secret=你的API密钥
Bearer_token=你的学术账号专属Bearer令牌

步骤2:使用Tweepy Client完成认证与数据拉取

import tweepy
import configparser
import os

# 读取配置文件
file_name = "config.txt"
file_path = os.path.join(os.getcwd(), file_name)

config = configparser.ConfigParser()
config.read(file_path)

bearer_token = config["twitter"]["Bearer_token"]

# 初始化API v2 Client
client = tweepy.Client(bearer_token=bearer_token)

# 测试拉取指定话题标签的推文(学术账号支持回溯更久的历史数据)
try:
    # 搜索含#Python的推文,最多返回10条
    response = client.search_recent_tweets(query="#Python", max_results=10)
    if response.data:
        print("认证成功!获取到话题标签推文:")
        for tweet in response.data:
            print(tweet.text)
    else:
        print("未搜索到相关推文,但认证已通过")
except tweepy.errors.Unauthorized:
    print("Bearer Token无效,请检查是否从学术账号后台正确生成")

额外检查项

  • 确认所有密钥/令牌均从Twitter开发者平台的学术研究项目生成,普通项目权限不足
  • 检查config.txt中的密钥名称是否拼写正确(比如大小写、空格)
  • 确保开发者平台中的项目状态为"活跃",账号无限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:20:29