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

如何通过推文ID获取推文JSON?适配Twitter API v2解决403报错

解决Twitter API 403错误获取推文JSON的方法

错误原因

你之前的代码调用的是Twitter API v1.1的get_status接口,但当前账号只有Essential access权限,该权限仅允许使用Twitter API v2的接口,因此触发403 Forbidden错误。

两种解决办法

办法1:申请Elevated access权限(继续用v1.1)

  • 登录Twitter开发者平台申请Elevated access,审核通过后就能继续使用原有v1.1的代码逻辑。不过这个方法需要等待审核,且有调用额度限制。

办法2:改用Twitter API v2接口(推荐,无需额外申请)

Essential access默认支持v2的推文获取接口,以下是调整后的代码:

import tweepy
import json

# 填入你的开发者认证信息
consumer_key = "你的consumer_key"
consumer_secret = "你的consumer_secret"
access_token = "你的access_token"
access_token_secret = "你的access_token_secret"

# 创建API v2客户端
client = tweepy.Client(
    consumer_key=consumer_key,
    consumer_secret=consumer_secret,
    access_token=access_token,
    access_token_secret=access_token_secret
)

# 获取指定推文,可按需添加需要返回的字段
response = client.get_tweet(
    "1654136293041864709",
    # 可添加更多字段,比如public_metrics(点赞、转发数)、created_at等
    tweet_fields=["text", "created_at", "public_metrics"]
)

# 提取推文数据并输出/保存
if response.data:
    # 打印推文的JSON结构
    print(response.data.data)
    # 保存为JSON文件
    with open("tweet_details.json", "w", encoding="utf-8") as f:
        json.dump(response.data.data, f, ensure_ascii=False, indent=4)
else:
    print("未获取到推文数据")

关键说明

  • Tweepy的Client类是专门适配API v2的客户端,替代了原v1.1的API类。
  • get_tweet方法需要明确指定tweet_fields,默认只返回推文ID和文本,你可以根据需求添加更多字段。
  • 如果需要获取完整的响应内容(包括可能的扩展数据),可以直接调用response.json()来获取完整JSON:print(response.json())。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:17:45