Twitter API V2获取账号关注者遇client-not-enrolled错误求助
解决Twitter API v2获取关注者时的
client-not-enrolled错误 问题背景
已升级至每月100美元的Basic计划(官方明确支持获取关注者列表),应用已关联带有V2 ACCESS标签的项目,但调用/users/{user_id}/followers端点时,仍返回client-not-enrolled错误,使用Tweepy库也出现相同问题,且官方文档部分链接无效。
排查与解决步骤
确认Bearer Token的归属应用
避免使用未关联付费项目的旧应用Token:- 进入开发者后台的目标项目,检查
Apps标签,确认你的应用在该项目下 - 进入应用的
Keys and Tokens页面,重新生成Bearer Token,替换脚本中的旧Token
- 进入开发者后台的目标项目,检查
验证应用权限配置
Basic计划的/users/{id}/followers端点需要follows.read权限:- 进入应用的
Permissions and Features标签,确认已开启Read或Read and write权限(包含follows.read) - 修改权限后必须重新生成Bearer Token,新权限才会生效
- 进入应用的
检查项目的API访问级别
确认项目已同步Basic计划权限:- 进入项目的
Project Settings,查看API access level是否显示为Basic - 若仍显示
Free,可能是升级后后台未同步,等待1-2小时后再检查,或联系开发者支持
- 进入项目的
用curl简化测试
排除脚本逻辑问题:curl --request GET \ --url 'https://api.twitter.com/2/users/{你的用户ID}/followers' \ --header 'Authorization: Bearer 你的新Bearer Token'如果curl仍报错,问题在账号/应用配置;若成功,再检查脚本中
user_id是否正确,或请求拼接是否有误修正脚本(可选,认证通过后优化)
默认返回的用户字段有限,可添加user.fields参数获取更多信息:import requests def get_followers(user_id, bearer_token): # 添加user.fields参数获取额外字段 url = f'https://api.twitter.com/2/users/{user_id}/followers?user.fields=created_at,description,location' headers = {'Authorization': f'Bearer {bearer_token}'} all_followers = [] while True: response = requests.get(url, headers=headers) if response.status_code == 200: result_data = response.json() all_followers.extend(result_data.get('data', [])) # 处理分页时保留参数 if 'next_token' in result_data.get('meta', {}): next_token = result_data['meta']['next_token'] url = f'https://api.twitter.com/2/users/{user_id}/followers?user.fields=created_at,description,location&pagination_token={next_token}' else: break else: print(f"请求失败,状态码: {response.status_code}") print(response.json()) return None return all_followers
内容的提问来源于stack exchange,提问作者Ebikeneser
相关产品推荐
相关产品推荐

