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

使用Tweepy调用Twitter API遇403错误,请求解决数据访问问题

问题解决步骤

1. 修正OAuth认证参数顺序

你当前代码里的OAuth参数顺序完全搞反了,这会导致认证逻辑错误,正确的写法是:

  • 先用consumer_key和consumer_secret初始化OAuthHandler
  • 再调用set_access_token传入access_token和access_token_secret

修正后的认证代码片段:

consumer_key = "a1"
consumer_secret = "b1"
access_token = "c1"
access_token_secret = "d1"

# 修正顺序
authorization = tweepy.OAuthHandler(consumer_key, consumer_secret)
authorization.set_access_token(access_token, access_token_secret)

api = tweepy.API(authorization)

2. 解决403权限限制问题

错误提示的核心是你当前的开发者账号没有访问v1.1 user_timeline端点的权限,有两种解决路径:

路径一:升级API访问权限

如果坚持用v1.1的user_timeline,需要在Twitter开发者后台升级到对应的产品套餐(比如Basic付费套餐),获取该端点的访问权限。

路径二:改用Twitter API v2端点

免费版账号可以访问v2的users/timelines端点,用Tweepy的v2客户端实现,示例代码如下:

import tweepy

consumer_key = "a1"
consumer_secret = "b1"
access_token = "c1"
access_token_secret = "d1"

# 初始化v2客户端
client = tweepy.Client(
    consumer_key=consumer_key,
    consumer_secret=consumer_secret,
    access_token=access_token,
    access_token_secret=access_token_secret
)

# 获取@elonmusk的用户ID(v2需要用ID而非用户名直接调用)
user = client.get_user(username="elonmusk")
user_id = user.data.id

# 获取时间线数据
tweets = client.get_users_tweets(
    id=user_id,
    max_results=200,
    exclude="retweets",
    tweet_fields=["created_at", "text"]
)

# 打印结果
for tweet in tweets.data:
    print(f"{tweet.created_at}: {tweet.text}")

注意:v2返回的数据结构和v1.1不同,需要根据需求调整字段参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:22:38