如何用Python&Tweepy获取Twitter趋势并可视化?解决403权限错误
解决Twitter API 403(错误码453)问题
这个错误的核心是你当前的Twitter API权限等级不够,无法访问获取热门话题的接口。以下是具体解决步骤:
- 确认接口与权限匹配:你调用的获取趋势的接口(比如v1.1的
trends/place)已不再对免费开放权限,必须使用付费套餐才能访问;如果用v2 API,也要确认当前套餐支持趋势相关端点的调用。 - 升级API套餐:登录Twitter开发者后台,将项目从免费套餐升级到Basic或更高等级的付费套餐,这些套餐包含热门话题接口的访问权限。
- 更新API凭证:升级套餐后,重新生成API密钥、Bearer Token等凭证,替换Jupyter Notebook中旧的认证信息。
- 使用正确的API端点:如果切换到v2 API,确保调用对应趋势接口,比如针对印度地区(WOEID:23424848)的趋势查询接口,示例代码如下:
import requests import os # 从环境变量读取Bearer Token,避免硬编码 bearer_token = os.getenv("TWITTER_BEARER_TOKEN") headers = {"Authorization": f"Bearer {bearer_token}"} # 请求印度地区的热门话题 url = "https://api.twitter.com/2/trends/place?id=23424848" response = requests.get(url, headers=headers) if response.status_code == 200: trends_data = response.json() # 提取Top10热门话题 top_10 = trends_data[0]["trends"][:10] for i, trend in enumerate(top_10, 1): print(f"{i}. {trend['name']} - 推文数量: {trend.get('tweet_volume', '暂无数据')}") else: print(f"请求出错: {response.status_code} - {response.text}") - 验证权限配置:在开发者后台确认项目已启用趋势相关API的访问权限,确保凭证没有权限限制或过期。
内容的提问来源于stack exchange,提问作者Shiva teja Beecharaju
相关产品推荐
相关产品推荐

