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

使用Python调用Twitter API时出现HTTP Error 405错误如何解决

问题原因

  • 核心兼容问题:你使用的search-tweets-python工具库是针对Twitter API v1.1版本的付费/企业级搜索接口开发的,完全不支持API v2版本的接口。你当前配置的端点https://api.twitter.com/2/tweets/search/recent属于v2接口,库默认发送的请求方法、参数格式都不符合v2接口要求,因此返回405状态码(该状态码是通用HTTP错误码,代表当前请求的方法不被目标接口支持)。
  • 代码参数错误:你在初始化ResultStream时错误将extra_headers_dict赋值给了username参数,不过该错误不是本次405报错的核心原因。

解决方案

方案1:继续使用v2近期搜索接口(推荐,无需额外申请权限)

直接用requests库调用v2接口即可,参考代码如下:

import requests

# 替换为你自己的bearer token
BEARER_TOKEN = "你的bearer token"
SEARCH_ENDPOINT = "https://api.twitter.com/2/tweets/search/recent"

def bearer_auth(r):
    r.headers["Authorization"] = f"Bearer {BEARER_TOKEN}"
    r.headers["User-Agent"] = "v2RecentSearchPython"
    return r

# 可根据需求调整查询参数
params = {
    "query": "twitterdev",
    "max_results": 100,
    # 可选参数,指定需要返回的推文字段,不填只返回默认的id和text
    "tweet.fields": "created_at,public_metrics,author_id"
}

resp = requests.get(SEARCH_ENDPOINT, auth=bearer_auth, params=params)
resp.raise_for_status()
tweets_data = resp.json()
print(tweets_data)

方案2:继续使用现有search-tweets-python库

  1. 先在Twitter开发者后台申请开通API v1.1的高级搜索权限
  2. 将配置文件中的端点替换为v1.1版本的premium搜索端点
  3. 修正代码中的参数错误,删除ResultStream初始化时的username参数(使用bearer token认证不需要传该参数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:15:01