我正在尝试使用 Python 检索 Twitter 帐户关注者的列表。
在意识到免费层 API 访问不提供此端点后,我将我的开发者帐户升级到基本计划(每月 100 美元),因为它明确指出一旦注册,您就可以检索帐户关注者或关注者。
我创建了一个脚本,应该根据用户 ID 检索帐户的关注者 -
import requests
def get_followers(user_id, bearer_token):
url = f'https://api.twitter.com/2/users/{user_id}/followers'
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['data'])
if 'next_token' in result_data['meta']:
next_token = result_data['meta']['next_token']
url = f'https://api.twitter.com/2/users/{user_id}/followers?pagination_token={next_token}'
else:
break
else:
print(f"Failed to get followers for user ID '{user_id}' with status code: {response.status_code}")
print(response.json())
return None
return all_followers
但是我收到以下(看起来很常见)错误响应 -
{
"client_id":"my-id",
"detail":"When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project. You can create a project via the developer portal.",
"registration_url":"https://developer.twitter.com/en/docs/projects/overview",
"title":"Client Forbidden",
"required_enrollment":"Appropriate Level of API Access",
"reason":"client-not-enrolled",
"type":"https://api.twitter.com/2/problems/client-forbidden"
}
我已确保我的应用程序位于具有关联的
V2 ACCESS
标签的项目中。
我也尝试使用 Tweepy 但是遇到了相同的错误响应。
另外,在阅读 Twitter 文档中的特定页面时,快速入门指南和 API 浏览器按钮都会导致链接损坏!
我原来的帖子提供了我在 2023 年 4 月 18 日为问题 Tweepy 获取关注者列表 编写的代码(现已删除)。
在您发表评论后,我对错误消息做了更多研究:
tweepy.errors.Forbidden:403 禁止
验证对 Twitter API v2 端点的请求时,您必须使用附加到项目的 Twitter 开发人员应用程序中的密钥和令牌。您可以通过开发者门户创建项目。
我发现 Twitter API 功能很快就发生了变化 我在 2023 年 4 月写了该代码。
此更改删除了获取用户 ID 和特定列表的关注者的查询访问权限。
下图来自Twitter的开发者变更日志,显示了这一变化。
这是有关相关错误的 GitHub 问题。
有趣的是,Twitter 的 API 开发人员用于发布变更日志更新的 Twitter 帐户 现在在 Twitter 上不存在。
我还查看了 Twitter 访问级别。今年早些时候,我使用 Essential Account 来查询关注者。
X 访问级别 具有更多限制,如下图所示。
根据这些新的访问级别和 2023 年 6 月 26 日的变更日志帖子,您似乎需要拥有企业帐户才能获取关注者列表。