Azure Spark笔记本中Tweepy v3.10.0调用Twitter API报403错误求助
问题分析与排查方案
问题详情
使用Tweepy v3.10.0调用Twitter API抓取推文时出现403错误,Postman调用Search API可正常运行,问题定位在Ingest_Process_Tweets笔记本的身份验证环节。完整错误信息:
Py4JJavaError: An error occurred while calling o2907.throwExceptionIfHave. : com.microsoft.spark.notebook.msutils.NotebookExecutionException: Twitter error response: status code = 403
排查步骤
- 核对身份验证参数:将笔记本中配置的API密钥、API密钥密码、访问令牌、访问令牌密码,与Postman中使用的参数逐一比对,确保无大小写错误、特殊字符遗漏或输入偏差。
- 检查Tweepy身份验证逻辑:确认笔记本中正确使用OAuth1协议完成身份验证,代码示例如下:
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth) - 确认应用权限范围:登录Twitter开发者平台,检查对应应用的权限设置,确保已开启读取推文的权限(Read only或Read and write),权限不足会触发403错误。
- 排查速率限制:笔记本可能因短时间内请求量过大触发速率限制,可在Tweepy初始化时开启自动等待重试:
同时添加日志记录当前速率使用情况,确认是否触发限制。api = tweepy.API(auth, wait_on_rate_limit=True) - 验证网络环境:确认笔记本运行环境的网络策略未限制Twitter API访问,对比Postman所在环境的网络配置,排除网络拦截问题。
- 核对API版本适配:Tweepy v3.10.0适配Twitter API v1.1,确认笔记本中调用的是v1.1的Search API端点,避免误用已废弃的端点或v2端点(v2需不同身份验证方式)。
内容的提问来源于stack exchange,提问作者Djibril Diakhate
相关产品推荐
相关产品推荐

