如何在网站展示Twitter API v2粉丝数?遇授权问题求助
解决Twitter API v2关联项目及粉丝数展示问题
1. 先解决「应用需关联至项目」的核心提示
Twitter API v2强制要求所有应用必须关联到一个项目,步骤如下:
- 登录Twitter开发者平台,进入「Projects & Apps」板块
- 找到你的应用,点击「Settings」进入设置页
- 在「Project association」区域,选择已创建的项目(没有的话直接创建一个免费项目即可),完成关联
- 关联完成后,重新生成Bearer令牌(虽然你之前验证过令牌有效,但关联项目后建议刷新令牌确保权限同步)
2. 适配API调用逻辑(Twifer库不原生支持v2)
Twifer是针对Twitter API v1开发的,直接修改接口地址无法兼容v2的请求规则,建议直接用PHP原生cURL发起请求,逻辑分两步:
- 先通过用户名获取用户ID(v2接口仅支持用用户ID查询粉丝数)
- 再通过用户ID获取包含粉丝数的公开数据
以下是可直接使用的PHP代码示例:
// 替换为你的Bearer令牌 $bearerToken = 'YOUR_BEARER_TOKEN'; // 替换为目标用户的Twitter用户名 $targetUsername = 'robbiewilliams'; // 调用v2接口获取用户ID及粉丝数 $apiUrl = "https://api.twitter.com/2/users/by/username/{$targetUsername}?user.fields=public_metrics"; $curl = curl_init($apiUrl); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer {$bearerToken}", "Content-Type: application/json" ], CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => true // 生产环境务必开启,本地测试可临时关闭 ]); $response = curl_exec($curl); curl_close($curl); $responseData = json_decode($response, true); if (isset($responseData['data']['public_metrics']['followers_count'])) { $followersCount = number_format($responseData['data']['public_metrics']['followers_count']); echo "{$targetUsername} 的粉丝数:{$followersCount}"; } else { // 错误处理,比如API限流、用户不存在等 $errorMsg = $responseData['errors'][0]['detail'] ?? '未知错误'; echo "获取失败:{$errorMsg}"; }
额外注意事项
- 确保你的项目权限设置为「Read」(获取粉丝数仅需只读权限即可)
- 免费项目有API调用次数限制,可在开发者平台查看「Rate Limits」监控使用情况
- 如果一定要用Twifer库,需要大幅修改库内的请求逻辑、参数拼接和响应解析逻辑,性价比远不如直接调用原生API
内容的提问来源于stack exchange,提问作者scriptoLAB
相关产品推荐
相关产品推荐

