使用Tweepy调用Twitter API v2高级权限时遇403 Forbidden错误求助
以下是针对你遇到的问题的排查和解决步骤:
确认App与Project的关联关系
错误提示明确指出必须使用关联到Project的App密钥。登录Twitter开发者后台,检查你的App是否已经添加到拥有高级研究权限的Project中。很多时候403的原因就是App没有绑定到对应权限的Project,哪怕权限已经获批。验证Bearer Token的归属
普通端点能正常使用Bearer Token,但高级接口不行,大概率是这个Token属于未绑定到目标Project的App。重新生成对应Project下App的Bearer Token,替换代码中的BEARER_TOKEN再尝试。使用正确的认证方式
search_all_tweets是应用级接口,仅支持Bearer Token认证,不需要传入consumer key/secret、access token等OAuth1.0a的参数。你之前尝试添加这些参数反而会导致认证失败,保持代码中只传bearer_token是正确的做法。检查权限是否正确启用
进入开发者后台的Project页面,确认“高级研究权限”已经启用,并且该权限覆盖了search_all_tweets接口。部分情况下权限获批后,需要手动在Project的权限设置中开启对应端点的访问权限。修正请求参数格式
Twitter API要求start_time必须是ISO 8601格式(如2023-01-01T00:00:00Z),你当前传入的"2023-01-01"格式不完整,虽然Tweepy可能会自动补全,但建议显式使用标准格式,避免参数解析错误导致的权限验证问题。修正后的代码示例:client = tweepy.Client(bearer_token=BEARER_TOKEN) test = client.search_all_tweets( query="#something", start_time="2023-01-01T00:00:00Z" ) print(test)
内容的提问来源于stack exchange,提问作者juanmac

